我刚刚遇到一个有趣的场景。我有一个C#课程:
public class Test
{
public int A;
public int a;
}
由于C#区分大小写,因此将两个变量A
和a
视为不同。我想在我的VB代码中继承上面的类,它不区分大小写。 VB代码将如何访问两个不同的变量A
和a
?
感谢任何帮助。
答案 0 :(得分:6)
确保跨语言兼容性的通用语言规范(CLS)告诉您不要声明两个仅在大小写上不同的公共成员。这样的代码不符合CLS。
如果您无法更改库的代码,可以使用反射API手动选择所需的字段:
obj.GetType().GetField("a").GetValue(obj)
obj.GetType().GetField("A").GetValue(obj)
答案 1 :(得分:5)
像Mehrdad所说的那样,声明两个公共成员不符合CLS,这两个公共成员只有在案件中不同 如果您希望visual studio帮助您编写可以从任何其他.NET语言使用的CLS投诉代码,请写下
[assembly: System.CLSCompliant(true)]
在你的 AssemblyInfo.cs 文件中,如果你在写完这一行后做错了什么,visual studio将不会高兴:)
编辑:或 AssemblyInfo.vb ,如果您使用的是VB.NET,感谢Lucas
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您希望代码在语言之间交叉使用,则需要遵循适用于这两种语言的命名标准。
我个人觉得有两个公共成员名称相同,大写不同非常复杂。