CS0765 de erro do compilador

Mensagem de erro

Métodos parcial com apenas uma declaração de definição ou métodos condicionais removidos não podem ser usados em árvores de expressão

Embora uma telefonar para um método parcial removido for uma expressão, não é uma expressão aceitável em uma árvore de expressão.

Para corrigir este erro

  • Adicione uma declaração de implementação para o método parcial ou remover o código que está causando o método a ser excluído da compilação condicional.

Exemplo

O código a seguir gera CS0765 em dois locais:

// 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
    }
}

Consulte também

Conceitos

Árvores de Expressão

Referência

Parcial classes e métodos (Guia de programação C#)