我从名为“DataTypes”的基础创建了一个继承的类“StorageMedium”。 StorageMedium有两个属性,Name()和Capacity()。
在继承了类库中所有其他对象的DataTypes对象中,我已经抑制了Equals,ReferenceEquals,GetHashCode,ToString和GetType函数,因此这些函数在Visual Studio编辑器中是不可浏览的。
目的是由于用户最终使用的类库不是“程序员”,我想隐藏他们可能遇到的任何不必要的代码或函数。
我有第二个“创建”StorageMedium实例的类:
Shared ReadOnly Property DVD() As StorageMedium
Get
Return New StorageMedium(NewMedium.DVD)
End Get
End Property
Shared ReadOnly Property CD() As StorageMedium
Get
Return New StorageMedium(NewMedium.CD)
End Get
End Property
在我的网页上,我想调用创建类并创建StorageMedium的实例,并将名称和容量显示为具有名称和容量的字符串
Response.Write(StorageMedium.Utils.DVD)
DVD: 4.7Gb
但是,当我使用Response.Write方法时,它会显示完整的类名
Response.Write(StorageMedium.Utils.DVD)
LC.Utils.Convert.Computer.DataType.StorageMedium
可以假设这可能是由于对基本Object函数的抑制造成的,但是,有没有办法“重新连接”或重新创建默认函数来利用ToString功能而不创建像“ToOutput”这样的属性至 根据需要显示对象?
感谢。
答案 0 :(得分:1)
你可以试试这个:
public class StorageMedium {
// Other code
public static implicit operator String(StorageMedium instance) {
return "StorageMedium"; // Or whatever string you prefer
}
}
虽然显然优先覆盖ToString()。