我有一个相当大的VB.NET项目,该项目是由一名前员工构建的。他得到了大部分的工作,但不是全部。
我知道它已经像这样运行了两年了。也许3。
现在,管理层正在努力恢复该项目并完成从未完成的工作。
该项目已分配给我,并且给了我一个月的时间来加快进度。
我正在用C#重写它,因为我的编码在该语言中更强大。
他使用的好主意之一是构造类,以便它们模仿数据库表:
这是一个小例子:
Public Class Acct_Code
Private _Acct_Code_ID As String = String.Empty
Private _Acct_Code As String = String.Empty
Public Property Acct_Code_ID() As String
Get
Return _Acct_Code_ID
End Get
Set(ByVal value As String)
_Acct_Code_ID = value
End Set
End Property
Public Property Acct_Code() As String
Get
Return _Acct_Code
End Get
Set(ByVal value As String)
_Acct_Code = value
End Set
End Property
End Class
目前,由于Error CS0542的原因,我无法将此VB代码放入C#中:
我知道应该重命名类或属性;但是,我想一次使这个项目工作,而不是在这里创建根本无法使用的代码。
有谁知道解决此编译器错误的方法-只是暂时直到我建立项目为止?
我知道可以忽略警告和异常,但是我不知道忽略编译器错误的方法。
最佳答案
您不能忽略违反语言规则的行为。您必须固定名称。
您可能希望在移植之前尝试在VB中修复名称,因为这样您就可以始终拥有有效的代码库...这将使您能够利用重构。然后,当您确定所有成员名称都与类型名称不同时,可以移植到C#。
顺便说一句,当您移植该代码时,您应该利用自动实现的属性,从而保留:
public class Account
{
public string Id { get; set; }
public string Code { get; set; }
}
(然后尝试放弃允许对象以所有可能的方式进行变异……那是另一回事:)
关于c# - 编译器错误CS0542的解决方法: member names cannot be the same as their enclosing type,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14899613/