有什么方法可以为.ToString
添加方法吗?如果不是全部.ToString
,则更具体地说:
For Each Client as DataRow in DT.Rows
Msgbox(Client.Item("first_name").ToString.**ProperCase**)
Next
我想向.ProperCase
添加ToString
。 StrConv(Client.Item("first_name").tostring
,vbProperCase)
这可能吗?
答案 0 :(得分:1)
ToString是一种方法。因此,您无法为其添加方法,但您可以向其中一个类添加方法。
您可以在System.String类或System.Object类上编写扩展方法。只要签名不同,您也可以重载内置方法。你不能写一个新的ToString(),但你可以写一个ToString(bool)来区分它。
一些替代方案:
创建一个具有值ProperCase的枚举类型,并在System.Object上写一个重载的扩展方法ToString(ToStringOpts)
:
Client.Item("first_name").ToString(ProperCase)
要链接的System.String上的扩展方法ProperCase()
(流利的语法):
Client.Item("first_name").ToString.ProperCase()
System.Object上的扩展方法ToStringProperCase()
,因此您只需要一个方法调用:
Client.Item("first_name").ToStringProperCase()
扩展方法文档:
http://msdn.microsoft.com/en-us/library/bb384936.aspx
我是C#的家伙,所以VB.NET的人帮助我,但总体思路是:
<Extension()>
Public Function ToStringProperCase(ByVal s As String) As String
Return String.Concat(s.Substring(0,1).ToUpper(), s.Substring(1).ToLower())
End Function