diff --git a/strings-csharp/ToStringMethod/Tests/Tests.csproj b/strings-csharp/ToStringMethod/Tests/Tests.csproj index 62803afc3a..ff16d170e8 100644 --- a/strings-csharp/ToStringMethod/Tests/Tests.csproj +++ b/strings-csharp/ToStringMethod/Tests/Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net10.0 enable enable @@ -9,13 +9,13 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/strings-csharp/ToStringMethod/Tests/ToStringMethodUnitTests.cs b/strings-csharp/ToStringMethod/Tests/ToStringMethodUnitTests.cs index 299f5db215..b560c42a5e 100644 --- a/strings-csharp/ToStringMethod/Tests/ToStringMethodUnitTests.cs +++ b/strings-csharp/ToStringMethod/Tests/ToStringMethodUnitTests.cs @@ -25,8 +25,8 @@ public void WhenPersonDetailsArePassed_TheReturnString() } [Theory] - [InlineData("en-GB", "Range Rover Vogue costs £200,000.00 and was sold on 12/02/2022 20:50:10")] - [InlineData("ja-JP", "Range Rover Vogue costs ¥200,000 and was sold on 12/02/2022 20:50:10")] + [InlineData("en-GB", "Range Rover Vogue costs £200,000.00 and was sold on 02/12/2022 20:50:10")] + [InlineData("ja-JP", "Range Rover Vogue costs ¥200,000 and was sold on 2022/12/02 20:50:10")] public void WhenCultureIsPassed_ThenReturnFormattedCurrency(string culture, string expected) { var result = _car.ToString(culture); @@ -39,7 +39,7 @@ public void WhenCultureIsPassed_ThenReturnFormattedCurrency(string culture, stri [Theory] [InlineData("en-GB", "dd/MM/yyyy", "Range Rover Vogue costs £200,000.00 and was sold on 02/12/2022")] [InlineData("en-US", "MM/dd/yyyy", "Range Rover Vogue costs $200,000.00 and was sold on 12/02/2022")] - [InlineData("ja-JP", "yyyy-MMM-dd", "Range Rover Vogue costs ¥200,000 and was sold on 2022-Dec-02")] + [InlineData("ja-JP", "yyyy-MM-dd", "Range Rover Vogue costs ¥200,000 and was sold on 2022-12-02")] public void WhenCultureAndDateFormatIsSpecified_ThenReturnFormattedString(string culture, string dateFormat, string expected) { @@ -49,4 +49,14 @@ public void WhenCultureAndDateFormatIsSpecified_ThenReturnFormattedString(string Assert.NotNull(result); Assert.Equal(expected, result); } + + [Fact] + public void WhenRecordIsPrinted_ThenReturnPropertyNamesAndValues() + { + var personRecord = new PersonRecord("Jane Doe", 26, "Secretary"); + + var result = personRecord.ToString(); + + Assert.Equal("PersonRecord { Name = Jane Doe, Age = 26, Profession = Secretary }", result); + } } \ No newline at end of file diff --git a/strings-csharp/ToStringMethod/ToStringMethod/Car.cs b/strings-csharp/ToStringMethod/ToStringMethod/Car.cs index 2c9acb2828..5ca834a47f 100644 --- a/strings-csharp/ToStringMethod/ToStringMethod/Car.cs +++ b/strings-csharp/ToStringMethod/ToStringMethod/Car.cs @@ -19,15 +19,18 @@ public Car(string make, string model, decimal price, DateTime soldAt) public string ToString(string culture) { - var price = Price.ToString("C", new CultureInfo(culture)); + var cultureInfo = new CultureInfo(culture); + var price = Price.ToString("C", cultureInfo); + var saleDate = SoldAt.ToString(cultureInfo); - return $"{Make} {Model} costs {price} and was sold on {SoldAt}"; + return $"{Make} {Model} costs {price} and was sold on {saleDate}"; } public string ToString(string culture, string dateFormat) { - var price = Price.ToString("C", new CultureInfo(culture)); - var saleDate = SoldAt.ToString(dateFormat); + var cultureInfo = new CultureInfo(culture); + var price = Price.ToString("C", cultureInfo); + var saleDate = SoldAt.ToString(dateFormat, cultureInfo); return $"{Make} {Model} costs {price} and was sold on {saleDate}"; } diff --git a/strings-csharp/ToStringMethod/ToStringMethod/PersonRecord.cs b/strings-csharp/ToStringMethod/ToStringMethod/PersonRecord.cs new file mode 100644 index 0000000000..32f3b66aee --- /dev/null +++ b/strings-csharp/ToStringMethod/ToStringMethod/PersonRecord.cs @@ -0,0 +1,3 @@ +namespace ToStringMethod; + +public record PersonRecord(string Name, int Age, string Profession); diff --git a/strings-csharp/ToStringMethod/ToStringMethod/Program.cs b/strings-csharp/ToStringMethod/ToStringMethod/Program.cs index b1409043e1..268963c0bb 100644 --- a/strings-csharp/ToStringMethod/ToStringMethod/Program.cs +++ b/strings-csharp/ToStringMethod/ToStringMethod/Program.cs @@ -1,8 +1,11 @@ using ToStringMethod; var person = new Person("John Doe", 30, "Software Developer"); -person.ToString(); +Console.WriteLine(person.ToString()); -var car = new Car("Tesla", "Model S", 100000M, DateTime.Now); -car.ToString("en-US"); -car.ToString("en-US", "dd-MMM-yyyy"); +var car = new Car("Tesla", "Model S", 100000M, new DateTime(2022, 12, 2, 17, 10, 56)); +Console.WriteLine(car.ToString("en-US")); +Console.WriteLine(car.ToString("en-US", "dd-MMM-yyyy")); + +var personRecord = new PersonRecord("John Doe", 30, "Software Developer"); +Console.WriteLine(personRecord); diff --git a/strings-csharp/ToStringMethod/ToStringMethod/ToStringMethod.csproj b/strings-csharp/ToStringMethod/ToStringMethod/ToStringMethod.csproj index 6e9bbf94a8..3a0e362ff8 100644 --- a/strings-csharp/ToStringMethod/ToStringMethod/ToStringMethod.csproj +++ b/strings-csharp/ToStringMethod/ToStringMethod/ToStringMethod.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net10.0 enable disable