Csharp/CSharp Tutorial/struct/struct initialization

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

How to initialize a structure

<source lang="csharp">using System;

// Define a structure. struct Book {

 public string author; 
 public string title; 
 public int copyright; 

 public Book(string a, string t, int c) { 
   author = a; 
   title = t; 
   copyright = c; 
 } 

}

class MainClass {

 public static void Main() { 
   Book book1 = new Book("author", "Book name", 2005);

   Book book2 = new Book(); // default constructor 
   Book book3; 

   Console.WriteLine(book1.title + " by " + book1.author + ", (c) " + book1.copyright); 
   Console.WriteLine(); 

   if(book2.title == null) 
     Console.WriteLine("book2.title is null."); 
   book2.title = "title"; 
   book2.author = "author"; 
   book2.copyright = 1932; 
   Console.Write("book2 now contains: "); 
   Console.WriteLine(book2.title + " by " + book2.author + ", (c) " + book2.copyright); 

   Console.WriteLine(); 

   // Console.WriteLine(book3.title); // error, must initialize first 
   book3.title = "Red Storm Rising"; 

   Console.WriteLine(book3.title); // now OK 
 } 

}</source>

Book name by author, (c) 2005
book2.title is null.
book2 now contains: title by author, (c) 1932
Red Storm Rising

Use this to reference struct"s constructor

<source lang="csharp">public struct ComplexNumber {

  public ComplexNumber( double real, double imaginary )
  {
     this.real = real;
     this.imaginary = imaginary;
  }
  public ComplexNumber( double real ):this( real, 0 )
  {
     this.real = real;
  }
  private double real;
  private double imaginary;

} public class MainClass {

  static void Main()
  {
     ComplexNumber valA = new ComplexNumber( 1, 2 );
  }

}</source>