Ошибка компилятора CS0765
Обновлен: Ноябрь 2007
Сообщение об ошибке
В деревьях выражений не могут использоваться разделяемые методы, имеющие только определяющее объявление или только удаленные условные методы
Partial methods with only a defining declaration or removed conditional methods cannot be used in expression trees
Вызов разделяемого метода, который был удален, является выражением, однако использование таких выражений в дереве выражений не разрешается.
Исправление ошибки
- Добавьте реализующее объявление для разделяемого метода или удалите код, который является причиной выполнения условного метода при компиляции.
Пример
В следующем примере создается ошибка CS0765 в двух местах:
// cs0765.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Linq.Expressions;
public delegate void dele();
public class ConClass
{
[Conditional("CONDITION")]
public static void TestMethod() { }
}
public partial class PartClass : IEnumerable
{
List<object> list = new List<object>();
partial void Add(int x);
public IEnumerator GetEnumerator()
{
for (int i = 0; i < list.Count; i++)
yield return list[i];
}
static void Main()
{
Expression<Func<PartClass>> testExpr1 = () => new PartClass { 1, 2 }; // CS0765
Expression<dele> testExpr2 = () => ConClass.TestMethod(); // CS0765
}
}
См. также
Основные понятия
Ссылки
Разделяемые классы и методы (Руководство по программированию в C#)