Почему это не соответствует CLS? - PullRequest
0 голосов
/ 03 февраля 2012

Из того, что я читал в Интернете, если поле private, оно может начинаться с ведущего _. Однако, когда я делаю следующее, он жалуется? Это потому, что я возвращаю личное поле? Это не имеет смысла для меня, так как все, что потребляет это, не имеет представления о _myObject, так почему это важно?

private MyBusinessObject _myObjectBO;

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

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

В сообщении указывается, что свойство type не соответствует.
Проверьте класс MyBusinessObject; многие разработчики забыли добавить [assembly: CLSCompliant(true)] (к сожалению, это не входит в стандартный шаблон)

1 голос
/ 03 февраля 2012

Ничто по этому поводу по своей сути не соответствует 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
{
}
...