当前位置: 首页 > 编程语言 > C#

C#测试变量是否赋值分享

时间:2023-04-11 00:34:44 C#

C#测试变量是否赋值我正在尝试写一个LinqMinBy扩展方法publicstaticclassExtensions{publicstaticTMinBy(thisIEnumerablesource,Funcselector){T分钟;诠释?最小键=空;foreach(varxinsource){varkey=selector(x);如果(minKey==null||keynewList{-5,-2,3}.MinBy(x=>x*x)-2.NET的Min函数回答了不同的问题(即最小平方)>newList{-5,-2,3}.Min(x=>x*x)4您需要像这样的min默认值:Tmin=default(T);您可以在MSDN上阅读有关default()的更多信息:给定参数化类型T的变量t,语句t=null仅当T是引用类型时才有效,而t=0仅适用于数字类型而不适用于结构。解决方案是使用default关键字,它将为引用类型返回null,为数字类型返回零。对于结构,它返回初始化为struct或null的结构的每个成员,具体取决于它们是值类型还是引用类型。对于可空类型,默认返回一个System.Nullable,它像任何结构一样被初始化。为min添加一个默认值:Tmin=default(T);它抱怨的原因是编译器在使用returnmin之前无法验证min是否已被赋值;线。无法引用未分配的局部变量,因此编译器会产生错误。那是因为min是在条件内分配的。编译器不能确定它是否会得到这个值,你应该用默认值初始化min。仅供参考,这就是我最终得到的publicstaticTMinBy(thisIEnumerablesource,Funcselector){Tmin=default(T);布尔开始=假;intminKey=默认值(int);foreach(varxinsource){varkey=selector(x);if(!started||key不行,不能测试一个变量是否赋值,总是会编译出错。以上是C#学习教程:C#测试变量是否赋值Shared的全部内容,如果是对你有用,需要了解更多C#学习教程,希望大家多多关注联系管理员删除,如有转载请注明出处: