C# 在抽象方法中使用不符合cls的类型
我使用了一个外部程序集,无论出于何种原因,它都没有指定CLS遵从性。因此,这导致我的许多代码被标记为不符合cls。我遇到的问题如下:C# 在抽象方法中使用不符合cls的类型,c#,code-analysis,abstract,cls-compliant,C#,Code Analysis,Abstract,Cls Compliant,我使用了一个外部程序集,无论出于何种原因,它都没有指定CLS遵从性。因此,这导致我的许多代码被标记为不符合cls。我遇到的问题如下: public abstract class SomeClass { //Compiler Error CS3011 [CLSCompliant(false)] public abstract object SomeMethod(ExternalNonCompliantType arg); } public abstract class S
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指定所有 实行班级成员制 我真的不知道该怎么办…
- 您正在编写的代码的预期用途是什么
- 您能否将整个程序集设置为
[clscompaint(false)]
一个例外是,如果您正在内部编写一些您希望能够在多种其他CLR语言(如F#、vb.net、ironpython、boo、M、scala等)中重用的内容,那么情况可能并非如此;大多数应用程序都只是简单的应用程序 我正在编写一个我计划分发的库,我希望我的库符合CLS。我将投赞成票,因为将整个班级标记为不符合cls的建议使警告消失了,这是有道理的。我只是希望有更好的方法。如果你正在写一个图书馆,那么是的,我想这很重要:)我们大多数人都没有。事实上,如果预期的消费者是同一种语言(c#),那么使用它就不会有问题,但对于那些不得不标记为不符合cls的人来说,这并不好。