代码之家  ›  专栏  ›  技术社区  ›  Gary.Ray

我能用TypeName的大小写作为变量名吗VB.Net?

  •  1
  • Gary.Ray  · 技术社区  · 6 年前

    我来自C#和JavaScript的背景,我习惯于这样的复杂类型的变量声明:

    //C# example
    var streamWriter = new StreamWriter();
    

    'VB.Net example
    Using SW As New StreamWriter(Path + "\source.txt")
         Dim W As New CsvWriter(SW, ",")
         ' additional code snipped
    End Using
    

    出于几个原因,在我向这个代码库添加特性时,我想将这些变量重命名为类似于我和团队其他成员用于C#的样式。所以代码看起来像:

    Using streamWriter As New StreamWriter(Path + "\source.txt")
        Dim csvWriter As New CsvWriter(streamWriter, ",")
        ' additional code snipped
    End Using
    

    我知道VB.Net 变量名不区分大小写,因此:

    Dim someVariable as String
    Dim SomeVariable as String
    

    导致“局部变量SomeData已在当前块中声明”的警告。

    我是否像在C#中那样使用camelCase版本的类型作为变量名,从而存在风险或违反了某些常见约定?

    Dim cvsWriter as CvsWriter
    

    在CLS合规性的标准或含义中是否有暗示我应该或不应该使用本公约的内容?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Community Reversed Engineer    4 年前

    this guideline :

    X不要 假设所有编程语言都区分大小写。他们不是。名称不能仅因大小写不同而不同。

    仅凭个案 .

    Using streamWriter As New StreamWriter(Path + "\source.txt")
    

    ,两个 streamWriter 单就案件而言,它们并不不同,它们的范围也不同。只要有其他东西可以区分名称(比如范围),就没有违反规则。

    相反,如果要在C#中声明此枚举:

    public enum Wtf
    { 
        yes,
        no,
        Yes,
        No
    }
    

    ,它将在C#中工作,但您将无法从例如VB中正确使用它,因为它在同一范围中定义了多个名称,而这些名称仅按大小写不同。

    所以当你声明一个你自己的变量来保存一个类的实例时,你可以在这个类之后命名这个变量,你可以使用任何你想要的大小写,它不应该破坏任何东西(如果它破坏了, 那是什么

    你不应该做的是创建一个 实体所在地 否则相等 成员仅因大小写而异,例如类的两个属性或枚举的两个成员。