#1,208 – C# 6.0 – Auto-Property Initializers Can Be Any Expression
October 21, 2014 Leave a comment
An auto-property initializer, used to initialize the value of an auto-implemented property, can be any expression. This includes the result of a method call.
Below, we initialize the value of the SecretName property to a value returned by the static function generateSecreteName.
public class Dog { public string Name { get; set; } // DogCreationTime is immutable public DateTime DogCreationTime { get; } = DateTime.Now; public string SecretName { get; } = generateSecretName(); public Dog(string name) { Name = name; } private static string generateSecretName() { Random rand = new Random(); int numLetters = rand.Next(4, 13); // 4-12 characters string name = ""; for (int i = 1; i <= numLetters; i++) name = name + (char)('a' + rand.Next(0, 26)); return name; } }