Replacing Func with delegates C#

2020-03-05 10:13发布

We are trying to move an application built in .NET 3.5 to 2.0 (reason to let our exe run on older machines with XP etc. which does not have 3.5)

While doing so everything is now stuck on one major problem Replacing Func with an old fashioned delegate (As Func is not available on 2.0). The code to be replaced is something like this.

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

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

Can some body please help me create 'someProperty' the way it is only by using delegates. Thanks in advance.

4条回答
▲ chillily
2楼-- · 2020-03-05 10:39

.Net2.0 Code with delegate looks like below:

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

    internal SomeName SomeProperty
    {
        get
        {
            return someName1 ?? (someName1 = someName2);
        }
        set
        {
            someName1 = value;
        }
    }
查看更多
ゆ 、 Hurt°
3楼-- · 2020-03-05 10:44

Specifically:

public delegate string SomeDelegate(object someObject);

private SomeDelegate someName1;
private static SomeDelegate someName2;

internal SomeDelegate someProperty
{
      get { return someName1?? (someName1= someName2); }
      set { someName1= value; }
}
查看更多
爱情/是我丢掉的垃圾
4楼-- · 2020-03-05 10:45

I believe you can use LinqBridge which defines the Action and Func delegates from .Net 3.5

查看更多
我命由我不由天
5楼-- · 2020-03-05 10:46
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);
查看更多
登录 后发表回答