2015-06-30 56 views
4

我有這樣一段代碼:什麼意思是在C#中返回的屬性?

[return: XmlElement("return", Namespace = "", IsNullable = false, DataType = "base64Binary")] 
public byte[] WORK([XmlElement(Namespace = "http://www.example.com/xml/someapi", DataType = "string", Form = XmlSchemaForm.Qualified)] string guid, [XmlElement(Namespace = "http://www.example.com/xml/someapi", DataType = "base64Binary", Form = XmlSchemaForm.Qualified)] byte[] data) { 

    // some work 
} 

是什麼屬性return:是什麼意思?

+0

先搜索,然後創建新帖子。 看看[這] [1]帖子。 [1]:http://stackoverflow.com/a/131467/1393594 – AlirezaJ

+2

@AlirezaJazaie它不是好的在這個問題的答案,首先看一下答案的質量解釋,然後回答 – user3112115

+0

如果你讀鏈接msdn頁面,你可以找到迴應。 – AlirezaJ

回答

2

我從來沒有通過它來之前,但它似乎在Disabmbiguating Attribute Targets

這種情況被描述爲屬性的目標編組時頻頻出現。爲了解決 的不明確性,C#爲每種 聲明都有一組默認目標,可以通過明確指定 屬性目標來覆蓋它。 C#

// default: applies to method 
[SomeAttr] 
int Method1() { return 0; } 

// applies to method 
[method: SomeAttr] 
int Method2() { return 0; } 

// applies to return value 
[return: SomeAttr] 
int Method3() { return 0; } 

注意,這是獨立於所SomeAttr 被定義爲有效目標的;也就是說,即使SomeAttr被定義爲 只適用於返回值,返回目標仍然必須是 指定的。換句話說,編譯器不會使用AttributeUsage 信息來解析不明確的屬性目標。有關更多 信息,請參閱AttributeUsage(C#編程指南)。 屬性目標的語法如下:[target:attribute-list]

+0

但是回報將和INT正確嗎?即使返回:someAttr,屬性存在....什麼是return:do?,你能解釋一步一步地發生什麼嗎?我仍然不明白它是如何工作的 – user3112115

+0

我認爲我在上面的報價中提供的例子是一個人爲的例子,但它規定該屬性的目標是方法的返回值。所以在你上面的例子中,我的看法是,它似乎表明返回值是一個'Nullable''binaryBase64'' byte []',可能會被序列化爲一個沒有名稱空間的XMLElement。 雖然這裏的東西是,該屬性是歸因於返回值,而不是方法本身。 –

+0

它可能會返回3種類型的值? – user3112115