【发布时间】:2014-10-25 10:16:36
【问题描述】:
我有一个关于 C# 结构的问题。我通常使用类,通过 struct 可以覆盖 = 运算符进行赋值。
就我而言,我有一个struct:
public struct ObjectWrap<T>
{
public T _value;
public ObjectWrap(T value)
{
_value = value;
}
public static implicit operator ObjectWrap<T>(T value)
{
return new ObjectWrap<T>(value);
}
}
(整个struct 代码不存在)
通过这样做,可以做这样的事情:
ObjectWrap<String> d = "My value";
但是,可以通过调用struct来访问我的struct值成员,比如
!String.IsNullOrWhiteSpace(d)
否则,我必须做一个访问器,它不是很“人性化”。
【问题讨论】:
-
隐式运算符也可以为类重载。顺便说一句,您忘记隐藏您的班级名称
DbField:-D -
You can't overload operator=。但是你可以定义一个隐式转换操作符。
标签: c# .net struct operators implicit-conversion