我刚刚遇到了一个有趣的场景.我有一个C#课:
public class Test
{
public int A;
public int a;
}
Run Code Online (Sandbox Code Playgroud)
由于C#区分大小写,因此将对这两个变量进行处理A并将a其区分开来.我想在我的VB代码中继承上面的类,它不区分大小写.VB代码将如何访问两个不同的变量A和a?
任何帮助表示赞赏.
确保跨语言兼容性的公共语言规范(CLS)告诉您不要声明两个仅在大小写上不同的公共成员.这样的代码不符合CLS.
如果您无法更改库的代码,则可以使用反射API手动选择所需的字段:
obj.GetType().GetField("a").GetValue(obj)
obj.GetType().GetField("A").GetValue(obj)
Run Code Online (Sandbox Code Playgroud)
就像Mehrdad所说,声明两个公共成员不符合CLS
,如果你希望visual studio帮助你编写可以在任何其他.NET语言中使用的CLS投诉代码,那就写一下
[assembly: System.CLSCompliant(true)]
Run Code Online (Sandbox Code Playgroud)
在你的AssemblyInfo.cs文件中,如果你在写完这一行后做错了什么,visual studio就不会高兴了:)
编辑:或者汇编信息如果你使用的是VB.NET,感谢Lucas
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |