簡體   English   中英

我必須為新的類實例指定名稱嗎?

[英]c# Do I have to specify name for a new class instance?

我正在統一地制作一個簡單的游戲,但有一點點不確定性可以幫助我:我是否必須命名一個類的新實例? 例如:

public class CreateCharacter : MonoBehaviour {

public string charname;

public CreateCharacter (string charname)
{
    this.charname = charname;
    //does all the stuff needed
}}

我想從另一個腳本運行它:

int e = data.Length - 1;
            if (e > 0)
            {
                new CreateCharacter(data[e]);
                e--;
            }

data是一個字符串數組,CreateCharacter會將新的Character對象存儲在此類對象的列表中,因此以后可以使用它。 我的問題是:我必須寫:

CreateCharacter SomeName = new ChreateCharacter

為代碼運行? 還是很簡單

new Class (constructor)

足夠?

盡管添加一些新東西並且不將其扔入變量中是一種不好的做法,但是該代碼將可以編譯並正常運行。 另外,您是否有一個叫CreateCharacter的類,原因是什么? 而不是返回給定數據的實際字符的函數?

如果不存儲該程序,將不會導致該程序死亡。

new CreateCharacter(data[e]);

但是是的,您想要存儲它,以便可以像上面那樣調用方法

CreateCharacter char = new CreateCharacter(string);

char.methodName();

另一個選擇是將要嘗試執行的代碼放在static method因為似乎在構造函數中運行的代碼不依賴於CreateCharacter類的實例。

您可以像聲明的那樣自行調用構造函數。 但是,請記住,新創建的對象將立即超出范圍,並在構造函數完成后被釋放。 因此,根據“ //是否包含所有需要的東西”中的內容,它可能會-使您的應用程序崩潰(盡管不太可能)。

如其他答案所述,將可讀性和功能性的最佳做法是將新創建的對象分配給變量,即使僅針對該for循環的范圍也是如此。

如果您使用

新類(構造函數)

它是匿名對象,可以完成工作。 只要未從代碼的其他位置引用該對象,就使用該對象的王者,其好處是您不應該為此找到合適的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM