2011-07-30 90 views
0
public class Animal 
    { 

     public void Eat() 
     { 
      Console.WriteLine("Animal eats for living."); 
     } 
    } 

Animal a = new Animal();用c中的新關鍵字創建對象#

當我們實例化一個對象時,真的需要使用新的keyowrd嗎?

我們可以這樣做

動物=動物();

這裏的任何幫助將是偉大的。

+0

這個問題非常奇怪,考慮到每種編程語言都遵循或多或少嚴格的語法和「新」是關鍵字來調用一個類型的構造函數方法,該方法返回一個類型的新實例。你正在做的是在範圍內調用一個動物方法。 – flq

回答

1

不,您始終可以使用Activator - Activator.CreateInstance。不知道你是否真的會發現它比新的更簡單。

同樣看着你的例子,你可能想把它作爲static,因爲你的方法不是在你的類的特定實例上進行操作。這種方式可以直接撥打Animal.Eat()

public static class Animal 
    { 

     public static void Eat() 
     { 
      Console.WriteLine("Animal eats for living."); 
     } 
    } 
+0

感謝幫助每個人我解決了這個問題 – happysmile

1

要實例化對象是的,你總是需要使用新的。話雖如此,如果因爲某些原因你不喜歡,你可以在你的類中創建一個包含new關鍵字的靜態加載方法。這不會改變你使用新的事實,但它確實隱藏了它。類似這樣的:

public class Animal 
{ 
    private Animal(){} 
    public static Animal Load() 
    { 
     return new Animal(); 
    } 
    public void Eat() 
    { 
     Console.WriteLine("Animal eats for living."); 
    } 
} 

或者你可以只做一個靜態類。

+0

只是出於好奇,你不喜歡使用「新」? – Paul

0

您可能已經考慮了C++,因此在使用或不使用new的情況下實例化對象時存在差異。

這不適用於C#。 「動物」永遠是對象的參考。如果C#語法允許編寫「Animal a = Animal();」,那可能意味着與「Animal a = new Animal()」完全相同;

相關問題