C# 6.0: Konstruktor struct bez parametrů [9/10] – vyřazeno z RTM

Tato úprava jazyka není součástí C# 6.0 RTM, byla odstaněna.

C# 5.0 nedovoluje vytvořit na struct explicitní constructor bez parametrů, hodnoty fieldů jsou totiž automaticky inicializovány svými default(T) hodnotami. C# 6.0 toto omezení odstraňuje:

struct Person
{
    public string Name { get; }
    public int Age { get; }
   
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public Person() : this("Jane Doe", 37)
    { }
}

Důležitým omezením však je, že takový konstruktor se použije pouze v případě explicitního volání new Person(), zatímco default(Person) stále založí výchozí hodnoty fieldů, stejnětak vytvoření pole new Person[..].

Série článků o novinkách v C# 6.0:

  1. Auto-property initializers a getter-only (read-only) auto-properties
  2. Expression-bodied function members
  3. Using static
  4. Null-conditional operators (?., ?[], …)
  5. String inerpolation – zkrácený String.Format()
  6. nameof() expressions
  7. Index initializers – přehlednější inicializace slovníků
  8. Exception filters, await v catch/finally blocích
  9. Konstruktor struct bez parametrů
  10. Ostatní (extension-Add v initializers, overload resolution)

9 thoughts on “C# 6.0: Konstruktor struct bez parametrů [9/10] – vyřazeno z RTM

  1. Pingback: C# 6.0: Null-conditional operators ?. [4/10] | HAVIT Knowledge Base

  2. Pingback: C# 6.0: nameof() expressions [6/10] | HAVIT Knowledge Base

  3. Pingback: C# 6.0: String interpolation – zkrácený String.Format() [5/10] | HAVIT Knowledge Base

  4. Pingback: C# 6.0: Using static [3/10] | HAVIT Knowledge Base

  5. Pingback: C# 6.0: Expression-bodied function members [2/10] | HAVIT Knowledge Base

  6. Pingback: C# 6.0: Auto-property initializers a getter-only (read-only) auto-properties [1/10] | HAVIT Knowledge Base

  7. Pingback: C# 6.0: Ostatní (extension-Add v initializers, overload resolution) [10/10] | HAVIT Knowledge Base

  8. Pingback: C# 6.0: Exception filters, await v catch/finally bloku [8/10] | HAVIT Knowledge Base

  9. Pingback: C# 6.0: Index initializers – přehlednější inicializace slovníků [7/10] | HAVIT Knowledge Base

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

Logo WordPress.com

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s