Errore del compilatore CS0765

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile utilizzare nelle strutture ad albero dell'espressione metodi parziali con solo una dichiarazione di definizione o con metodi condizionali rimossi
Partial methods with only a defining declaration or removed conditional methods cannot be used in expression trees

Anche se una chiamata a un metodo parziale rimosso è un'espressione, non è un'espressione accettabile in una struttura ad albero dell'espressione.

Per correggere l'errore

  • Aggiungere una dichiarazione di implementazione per il metodo parziale o rimuovere il codice che causa l'esclusione del metodo condizionale dalla compilazione.

Esempio

Nel codice seguente viene generato l'errore CS0765 in due percorsi:

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

Vedere anche

Concetti

Strutture ad albero dell'espressione

Riferimenti

Classi e metodi parziali (Guida per programmatori C#)