如何改变在C#中默认是什么(T)的回报? [英] How to change what default(T) returns in C#?

查看:88
本文介绍了如何改变在C#中默认是什么(T)的回报?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想改变默认(T)的行为进行某些类。因此,而不是返回null供我参考类型,我想返回一个空的对象。

有点像

  kids.Clear();
变种小子= kids.Where(K => k.Age小于10).SingleOrDefault();如果(孩子是NullKid)
{
  Console.Out.WriteLine(Jippeie);
}

任何人都知道,如果这是在所有可能的?


解决方案

  

任何人都知道,如果这是在所有
  可能吗?


这是根本不可能的。

但也许你想使用 DefaultIfEmpty 来代替:

  kids.Clear();
变种小子= kids.Where(K => k.Age小于10).DefaultIfEmpty(NullKid)。单();如果(孩子== NullKid)
{
    Console.Out.WriteLine(Jippeie);
}

I would like to change how default(T) behaves for certain classes. So instead of returning null for my reference types I would like to return a null object.

Kind of like

kids.Clear();
var kid = kids.Where(k => k.Age < 10).SingleOrDefault(); 

if (kid is NullKid)
{
  Console.Out.WriteLine("Jippeie");
}

Anyone know if this is at all possible?

解决方案

Anyone know if this is at all possible?

It is simply not possible at all.

But maybe you want to use DefaultIfEmpty instead:

kids.Clear(); 
var kid = kids.Where(k => k.Age < 10).DefaultIfEmpty(NullKid).Single(); 

if (kid == NullKid)
{  
    Console.Out.WriteLine("Jippeie");
}

这篇关于如何改变在C#中默认是什么(T)的回报?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆