簡體   English   中英

用代理C#替換Func

[英]Replacing Func with delegates C#

我們正在嘗試將.NET 3.5內置的應用程序移動到2.0(因為我們的exe運行在XP等沒有3.5的舊機器上)

在這樣做的同時,現在一切都停留在一個主要問題上用舊式代理替換Func(因為Func在2.0上不可用)。 要替換的代碼是這樣的。

private Func<object, string> someName1;
private static Func<object, string> someName2;

internal Func<object, string> someProperty
{
      get { return someName1?? (someName1= someName2); }
      set { someName1= value; }
}

有些人可以幫助我創建'someProperty',只需使用代表。 提前致謝。

public delegate void Action();
public delegate void Action<T>(T t);
public delegate void Action<T, U>(T t, U u);
public delegate void Action<T, U, V>(T t, U u, V v);

public delegate TResult Func<TResult>();
public delegate TResult Func<T, TResult>(T t);
public delegate TResult Func<T, U, TResult>(T t, U u);
public delegate TResult Func<T, U, V, TResult>(T t, U u, V v);
public delegate TResult Func<T, U, V, W, TResult>(T t, U u, V v, W w);

特別:

public delegate string SomeDelegate(object someObject);

private SomeDelegate someName1;
private static SomeDelegate someName2;

internal SomeDelegate someProperty
{
      get { return someName1?? (someName1= someName2); }
      set { someName1= value; }
}

我相信你可以使用LinqBridge定義來自.Net 3.5的ActionFunc 代理

帶有委托的.Net2.0代碼如下所示:

    private delegate void SomeName(object arg1, string arg2);
    SomeName someName1, someName2;

    internal SomeName SomeProperty
    {
        get
        {
            return someName1 ?? (someName1 = someName2);
        }
        set
        {
            someName1 = value;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM