Ostrzeżenie kompilatora (poziom 1) CS3018
Nie można oznaczyć typu jako zgodnego ze specyfikacją CLS, ponieważ jest elementem członkowskim typu niezgodnego ze specyfikacją CLS "type"
To ostrzeżenie występuje, jeśli zagnieżdżona klasa z atrybutem CLSCompliant ustawiona true
na jest zadeklarowana jako składowa klasy zadeklarowanej za pomocą atrybutu CLSCompliant ustawionego na false
wartość . Nie jest to dozwolone, ponieważ zagnieżdżona klasa nie może być zgodna ze specyfikacją CLS, jeśli jest członkiem klasy zewnętrznej, która nie jest zgodna ze specyfikacją CLS. Aby rozwiązać to ostrzeżenie, usuń atrybut CLSCompliant z zagnieżdżonej klasy lub zmień go z true
na false
. Aby uzyskać więcej informacji na temat zgodności środowiska CLS, zobacz Niezależność języka i składniki niezależne od języka.
Poniższy przykład generuje plik CS3018.
// CS3018.cs
// compile with: /target:library
using System;
[assembly: CLSCompliant(true)]
[CLSCompliant(false)]
public class Outer
{
[CLSCompliant(true)] // CS3018
public class Nested {}
// OK
public class Nested2 {}
[CLSCompliant(false)]
public class Nested3 {}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: