public class Animal
{
public void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
Animal a = new Animal();用c中的新關鍵字創建對象#
當我們實例化一個對象時,真的需要使用新的keyowrd嗎?
我們可以這樣做
動物=動物();
這裏的任何幫助將是偉大的。
public class Animal
{
public void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
Animal a = new Animal();用c中的新關鍵字創建對象#
當我們實例化一個對象時,真的需要使用新的keyowrd嗎?
我們可以這樣做
動物=動物();
這裏的任何幫助將是偉大的。
不,您始終可以使用Activator - Activator.CreateInstance。不知道你是否真的會發現它比新的更簡單。
同樣看着你的例子,你可能想把它作爲static,因爲你的方法不是在你的類的特定實例上進行操作。這種方式可以直接撥打Animal.Eat()
。
public static class Animal
{
public static void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
感謝幫助每個人我解決了這個問題 – happysmile
要實例化對象是的,你總是需要使用新的。話雖如此,如果因爲某些原因你不喜歡,你可以在你的類中創建一個包含new關鍵字的靜態加載方法。這不會改變你使用新的事實,但它確實隱藏了它。類似這樣的:
public class Animal
{
private Animal(){}
public static Animal Load()
{
return new Animal();
}
public void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
或者你可以只做一個靜態類。
只是出於好奇,你不喜歡使用「新」? – Paul
您可能已經考慮了C++,因此在使用或不使用new的情況下實例化對象時存在差異。
這不適用於C#。 「動物」永遠是對象的參考。如果C#語法允許編寫「Animal a = Animal();」,那可能意味着與「Animal a = new Animal()」完全相同;
這個問題非常奇怪,考慮到每種編程語言都遵循或多或少嚴格的語法和「新」是關鍵字來調用一個類型的構造函數方法,該方法返回一個類型的新實例。你正在做的是在範圍內調用一個動物方法。 – flq