为什么这不符合cls?

时间:2012-02-03 00:43:02

标签: c# cls-compliant

根据我在线阅读的内容,如果该字段为private,则可以从前导_开始。但是,当我做以下事情时,它会抱怨吗?是因为我要归还私人领域吗?对我来说没有意义,因为任何消耗它的东西都不知道_myObject所以它为什么重要?

private MyBusinessObject _myObjectBO;

protected MyBusinessObject MyObjectBO
{
    get { return _myObjectBO ?? (_myObjectBO= new MyBusinessObject()); }
}

2 个答案:

答案 0 :(得分:4)

该消息表明该属性的类型不符合要求 检查MyBusinessObject班级;许多开发人员忘记添加[assembly: CLSCompliant(true)](不幸的是,它不是标准模板的一部分)

答案 1 :(得分:1)

这一点本身并不符合CLS标准。 MyObject是什么样的?我使用以下代码进行了测试,并且在编译时没有收到CLS合规性警告:

[CLSCompliant(true)]
public class Program
{
    private MyObject _myObject;

    [CLSCompliant(true)]
    public MyObject ComplaintTypeBO
    {
        get { return _myObject ?? (_myObject = new MyObject()); }
    }

    static void Main(string[] args)
    {
    }
}

[CLSCompliant(true)]
public class MyObject
{
}