Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Оператор "оператор" не может применяться к операнду типа "тип" и "тип"
Бинарный оператор применяется к типам данных, которые не поддерживают его. Например, нельзя использовать || оператор в строках, нельзя использовать <-+оператор , или > операторы в логических переменных, и нельзя использовать == оператор с типомstruct
, если только тип явно не перегружает этот оператор.
Можно перегрузить оператор, чтобы обеспечить поддержку операндов определенных типов. Для получения дополнительной информации см. раздел Перегрузка операторов.
В следующем примере CS0019 создается в трех местах, так как bool в C# не преобразуется в int. CS0019 также создается при применении оператора -
вычитания к строке. Оператор сложения +
можно использовать со строковыми операндами, поскольку он перегружен в классе String
, где реализует объединение строк.
static void Main()
{
bool result = true;
if (result > 0) //CS0019
{
// Do something.
}
int i = 1;
// You cannot compare an integer and a boolean value.
if (i == true) //CS0019
{
//Do something...
}
string s = "Just try to subtract me.";
float f = 100 - s; // CS0019
}
В следующем примере условная логика должна задаваться вне ConditionalAttribute. В ConditionalAttribute можно передать только один предварительно определенный символ.
В следующем примере возникает ошибка CS0019:
// CS0019_a.cs
// compile with: /target:library
using System.Diagnostics;
public class MyClass
{
[ConditionalAttribute("DEBUG" || "TRACE")] // CS0019
public void TestMethod() {}
// OK
[ConditionalAttribute("DEBUG"), ConditionalAttribute("TRACE")]
public void TestMethod2() {}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: