我遇到了使用兩種符號中的任何一種的例子。我找不到任何關於它的事情,它告訴哪一個是常見的,爲什麼允許2個符號,以及兩者之間是否存在任何細微差別。c#中的[Serializable]和[Serializable()]有區別嗎?
任何想法?
我遇到了使用兩種符號中的任何一種的例子。我找不到任何關於它的事情,它告訴哪一個是常見的,爲什麼允許2個符號,以及兩者之間是否存在任何細微差別。c#中的[Serializable]和[Serializable()]有區別嗎?
任何想法?
沒有,沒有功能差異。
爲什麼2種不同的風格,你問?爲簡潔起見,允許使用第一種表示法。第二個符號是允許的,因爲一些屬性取參數:
[Category("Foobar related methods.")]
public void Foo()
{
}
還要注意的是[Serializable接口]實際上只是短手[SerializableAttribute()] - C#,您可以省略屬性後綴以及空構造括號。
感謝您的快速回答! – Toad 2009-11-20 14:21:51
都使用默認c'tor,根本沒有任何區別。
不,沒有區別。 [Serializable]
只是[Serializable()]
的語法糖,因爲如果存在默認的屬性構造函數,C#語法可以讓您錯過構造函數的括號。
請注意,由於屬性聲明還允許您錯過Attribute後綴,因此兩者都是[SerializableAttribute()]
的語法糖。
感謝您的回答 – Toad 2009-11-20 14:22:27
好問題..總是自己想。 – 2009-11-20 14:33:40