1
我有一個我使用的外部程序集,並且出於任何原因它沒有指定CLS合規性。所以,這會導致我的很多代碼被標記爲非cls兼容。我遇到的問題如下:在抽象方法中使用non-cls兼容類型
public abstract class SomeClass
{
//Compiler Error CS3011
[CLSCompliant(false)]
public abstract object SomeMethod(ExternalNonCompliantType arg);
}
public abstract class SomeClass
{
//Argument type 'External.ExternalNonCompliantType' is not CLS-compliant
public abstract object SomeMethod(ExternalNonCompliantType arg);
}
CS3011:
類成員不能既是抽象的,不符合 公共語言規範(CLS)。 CLS規定所有 級別的成員應執行。
我真的不知道在這裏做什麼?
問題不在於「我的代碼是否應該符合CLS?」 – Jodrell 2012-07-19 10:12:49
我正在編寫一個我計劃分發的庫,並且我希望我的庫符合CLS標準。我會贊成,因爲將整個班級標記爲不符合要求的建議會使警告消失,這是有道理的。我只是希望有更好的方法。 – 2012-07-19 10:14:07
如果你正在寫一個圖書館,那麼是的,我認爲它很重要:)大多數人不。實際上,如果預期的消費者使用相同的語言(c#),那麼使用它就不會有問題,但對於任何下線的人員都必須標記爲非cls兼容,這並不好。 – 2012-08-10 02:50:20