Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 是否有可能实现ToString覆盖方法_.net_Vb.net_Tostring - Fatal编程技术网

.net 是否有可能实现ToString覆盖方法

.net 是否有可能实现ToString覆盖方法,.net,vb.net,tostring,.net,Vb.net,Tostring,是否有任何方法可以将方法添加到.ToString?如果不是所有.ToString,则更具体地说: For Each Client as DataRow in DT.Rows Msgbox(Client.Item("first_name").ToString.**ProperCase**) Next 我想将.ProperCase添加到ToStringStrConv(客户端项目(“名字”).tostring,vbProperCase) 这可能吗?ToString是一种方法。因此,您不能向其

是否有任何方法可以将方法添加到
.ToString
?如果不是所有
.ToString
,则更具体地说:

For Each Client as DataRow in DT.Rows
    Msgbox(Client.Item("first_name").ToString.**ProperCase**)
Next
我想将
.ProperCase
添加到
ToString
<代码>StrConv(客户端项目(“名字”).tostring,
vbProperCase)


这可能吗?

ToString是一种方法。因此,您不能向其中添加方法,但可以向其中一个类添加方法

您可以在System.String类或System.Object类上编写扩展方法。只要签名不同,也可以重载内置方法。您不能编写新的ToString(),但可以编写一个ToString(bool)来区分它

有几个备选方案:

  • 创建一个值为ProperCase的枚举类型,并在系统上写入重载扩展方法
    ToString(ToStringOpts)
    。对象:

    Client.Item("first_name").ToString(ProperCase)
    
  • 系统上的扩展方法
    ProperCase()
    。要链接的字符串(流畅语法):

  • System.Object上的扩展方法
    ToStringProperties()
    ,所以您只需要一个方法调用:

    Client.Item("first_name").ToStringProperCase()
    
  • 扩展方法文档:

    我是一个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
    
    
    公共函数toString属性(ByVal s作为字符串)作为字符串
    返回字符串.Concat(s.Substring(0,1).ToUpper(),s.Substring(1.ToLower())
    端函数
    
    搜索“扩展方法VB.NET”。谢谢。我遇到了一些问题,我正在处理的项目使用的是2.0。虽然谷歌在2.0中展示了这样做的方法,但它打破了我的项目中的其他东西。但现在我知道了如何在使用4.0的其他项目中实现这一点。谢谢你的解释和样品。
    <Extension()>
    Public Function ToStringProperCase(ByVal s As String) As String
         Return String.Concat(s.Substring(0,1).ToUpper(), s.Substring(1).ToLower())
    End Function