带参数的属性
我在VB.NET中遇到了一些奇怪的东西,以前从未注意到……
我在VB.NET中有一个带有参数属性的类,我希望通过创建VB.NET类的对象而在其他C#类中使用该属性,但是类对象没有显示该属性,任何人都可以告诉我是否可以访问该属性属性转换成C#与否。
这是我的代码……
Public Property AsString(ByVal name As String) As String Get //Some code End Get Set(ByVal value As String) //Some code End Set End Property
注意:我无法更改VB.NET代码,因为它是编译DLL。
提前致谢
参数化属性将转换为get_
和set_
方法。
string name = "Foo"; string value = "Bar"; MyObject.set_AsString(name, value); string fooValue = MyObject.get_AsString(name);
C#不支持没有Default关键字的索引属性。 您可以简单地使用get_AsString()来调用属性getter,使用set_AsString()来调用setter。 方法,而不是属性。 它们应该很容易显示在IntelliSense列表中。
另请注意,即使您将属性设置器设置为非索引,set_AsString()也需要两个参数。 传递任何东西,null会做。
Fwiw,这或许说明了为什么C#团队决定不支持一般情况下的索引属性。 吸气剂和定位器之间的不匹配是痛苦的。 vb.net团队别无选择,Visual Basic早在.NET出现之前就已经有了。 它确实在C#版本4中部分回归,但COM接口支持索引属性。 没有它们,COM互操作编程太痛苦了。 特别是在Office对象模型中。
如果您注意到实际上您的属性中有两个参数,一个是您的免费精选名字大全,另一个是默认值,因此当您使用该参数时,您必须提供两个参数值
上述就是C#学习教程:带参数的属性分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/942047.html