给定以下扩展方法:
public static class Ext
{
public static void Serialize(this Guid guid_, StringWriter sw_)
{
sw_.Write(guid_.ToString("B"));
}
}
和班级:
public class Field<T>
{
public T value;
public void Serialize(StringWriter sw_)
{
value.Serialize(sw_);
}
}
我想做以下事情,但不太清楚:
public class Foo
{
public Field<Guid> uid;
public Foo()
{
// assume StringWriter object sw;
uid.Serialize(sw);
}
}
显然现实生活中的情况更复杂,这只是一个简单的例子。
编辑
编译器错误:
错误 CS1928:“T”不包含“Serialize”的定义,并且最佳扩展方法重载“Ext.Serialize(System.Guid, StringWriter)”有一些无效参数
错误 CS1929:实例参数:无法从“T”转换为“System.Guid”