2015-09-05 121 views
0

一個結構可以像下面的代碼一樣在類內創建嗎?什麼是創建一個結構的正確方法是在類內創建有用的?和其他問題是,如果一個結構的屬性必須聲明與getter和setter像這樣public int Strength {get;設置;}或以它在下面顯示的代碼中的方式是好的?一個結構體可以在類內部創建嗎?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
namespace createStructs 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

     } 
     struct Coffee 
     { 
      /*properties*/ 
      public int Strength; 
      public string Bean; 
      public string CountryOfOrigin; 
      /*constructor*/ 
      public Coffee(int strength, string bean, string countryOfOrigin) 
      { 
       this.Strength = strength; 
       this.Bean = bean; 
       this.CountryOfOrigin = countryOfOrigin; 
      }   
     } 
    } 
+1

你爲什麼不試試......? – metadings

+1

既然你有代碼,那你爲什麼不打F5看看它是否編譯?如果是這樣,那麼你已經回答了你自己的問題。如果沒有,你已經回答了你自己的問題:) – dman2306

+1

@ dman2306單獨編譯使用'ctrl + shift + B' F5將運行應用程序:) –

回答

3

您的代碼不是創建結構;它只是聲明一個結構類型,但不創建任何這種類型的對象。是的,你可以在一個類中聲明嵌套類型。這些可以是接口,類,結構,枚舉和代表。

這些類型甚至可以在父類之外使用,如果它們是公共的。如果嵌套類型要訪問父成員

Coffe c = new Coffee(3, "bean", "country"); 

:如果你的結構是公開的,你可以使用它像這樣從其它類:

Program.Coffe c = new Program.Coffee(3, "bean", "country"); 

Program類中,你可以寫類,那麼它仍然需要對此父類型的對象的引用;即嵌套純粹是靜態的。

+0

嵌套事件?我不知道這是否可能,儘管 –

+0

事件是一種屬性,可以分配一個delelegate('+ =')。這不是一種類型。它有一個委託類型。 –

+1

您忘記了**界面** :-) –

相關問題