Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助在C#中创建带有泛型和lambda表达式的扩展方法吗_C#_Generics_Lambda_Extension Methods - Fatal编程技术网

需要帮助在C#中创建带有泛型和lambda表达式的扩展方法吗

需要帮助在C#中创建带有泛型和lambda表达式的扩展方法吗,c#,generics,lambda,extension-methods,C#,Generics,Lambda,Extension Methods,我正在为这一个将所有高级功能整合在一起,但没有太多使用泛型或lambda表达式: 下面是我要创建的方法的示例用法: MyClass mc = null; int x = mc.TryGetOrDefault(z => z.This.That.TheOther); // z is a reference to mc // the code has not failed at this point and the value of x is 0 (int's default) // had m

我正在为这一个将所有高级功能整合在一起,但没有太多使用泛型或lambda表达式:

下面是我要创建的方法的示例用法:

MyClass mc = null;
int x = mc.TryGetOrDefault(z => z.This.That.TheOther); // z is a reference to mc
// the code has not failed at this point and the value of x is 0 (int's default)
// had mc and all of the properties expressed in the lambda expression been initialized
// x would be equal to mc.This.That.TheOther's value
就我所知,这里是Visual Studio抱怨的地方:


您尚未在
TResult
中使您的方法成为通用方法。你想要的是:

public static TResult TryGetOrDefault<TSource, TResult>
    (this TSource obj, Expression<Func<TSource, TResult>> expression)
public static TResult tryGetOrderFault
(此TSource obj,表达式)

您尚未在
TResult
中使您的方法成为通用方法。你想要的是:

public static TResult TryGetOrDefault<TSource, TResult>
    (this TSource obj, Expression<Func<TSource, TResult>> expression)
public static TResult tryGetOrderFault
(此TSource obj,表达式)

你刚刚把这个问题变成了一个全新的问题,罗尼。我认为Jon已经完美地回答了第一个问题。我认为问题的范围围绕着我的最终结果,因为StackOverflow自诩为类似wiki的,所以我可以更新这个问题。等待我下一个的URL?@Ronnie:你可以编辑一个现有的问题-但是你问了一个新问题,这根本不是一回事。明白了。谢谢你的帮助。我问了另一个问题。你刚刚把这个问题变成了一个全新的问题,罗尼。我认为Jon已经完美地回答了第一个问题。我认为问题的范围围绕着我的最终结果,因为StackOverflow自诩为类似wiki的,所以我可以更新这个问题。等待我下一个的URL?@Ronnie:你可以编辑一个现有的问题-但是你问了一个新问题,这根本不是一回事。明白了。谢谢你的帮助。我又问了一个问题。