gpt4 book ai didi

c# - C#如何制作行为类似于Nullable 的类

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:23 24 4
gpt4 key购买 nike

给定代码:

public class Filter<T>
{
private bool selected = false;
public bool Selected { get { return selected; } }

private T value;
public T Value { get{ return this.value; } set { this.value = value; selected = true; }
}

public class Test
{
public void filter()
{
DateTime a= new DateTime();
Nullable<DateTime> b = new DateTime(); //Work Like a Charm
Filter<DateTime> c = new DateTime(); //Dosent Work
}
}


Nullable<T>中,可以直接将 new DateTime()分配给变量。在我的课上,它不起作用。我想了解我所缺少的。

我认为这很简单。但是我无法用文字来找到答案。

最佳答案

您必须实现implicit operators

public static implicit operator Filter<T>(T value)
{
return new Filter<T>() { Value = value };
}


隐式运算符将允许您在不显式编写 Filter<T> filter = (Filter<T>)value;(显式强制转换)的情况下强制转换类型,而仅在 Filter<T> filter = value;(隐式强制转换)。

关于c# - C#如何制作行为类似于Nullable <T>的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com