我有此代码;
public static void SetMyClass (this myClass data, ListControl crl)
{
var value = crl.SelectedValue.ToNullableInt();
if (value.HasValue)
{
data = new myClass () { Id = value.Value };
}
}
此代码不会通过新实例更改原始实例。
可以做到吗?
public static void SetMyClass (ref myClass data, ListControl crl)
{
var value = crl.SelectedValue.ToNullableInt();
if (value.HasValue)
{
data = new myClass () { Id = value.Value };
}
}
您失去了扩展方法,但会获得更改方法内部参考的能力。
不可能使用扩展方法。
这是无法完成的,因为您需要通过参考传递参数而不是需要使用ref
关键字...而扩展方法不支持第一个参数的ref
(实例)参数)。
为什么不将data
S属性设置为值?
要保持助手,我将使用此服务
public static T GetMyClass<T>(this ListControl data) where T : myClass, new()
{
var value = data.SelectedValue.ToNullableInt();
if (value.HasValue)
{
return new T() { Id = value.Value };
}
return null;
}