c# - 两种声明变量的方式是否相同?

标签 c# .net variable-declaration

下面两种声明变量的方式一样吗?

int aa= 0, bb= 0, cc= 0, dd= 0;

int aa= 0;
int bb= 0;
int cc= 0;
int dd= 0;

最佳答案

,这个:

int aa = 0, bb = 0, cc, dd;

与以下版本完全相同,更常见和可读:

int aa = 0;
int bb = 0;
int cc;
int dd;

作为Soner Gönül shows , 它们生成相同的 IL 代码。

但你问了一个很好的问题,因为事情可能比这更微妙。

指针

在不安全的 C# 中,您可以使用指针。指向整数的指针写为 int*。所以当你想声明三个int*类型的变量时,你可能会这样写:

int* aa, bb, cc;

这正确地代表了您的意图:

int* aa;
int* bb;
int* cc;

但是,指针的语法来自更古老的 C 语言,如果您在 C 中像这样声明三个指针变量:

int* aa, bb, cc;

那么这意味着有些微妙的不同,而你实际上已经写了:

int* aa;
int bb;
int cc;

这就是为什么 C 开发人员会编写 int *aa 来代替,以表明只有 aa 是指针类型,其余都是普通整数。

int *aa, bb, cc;

但是,我不鼓励你完全用 C 编写这样的东西:它很困惑。

Visual Basic 和 VB.Net

在 Visual Basic.NET 中,您还可以在一行中声明变量:

Dim aa, bb As Integer

这与:

Dim aa As Integer
Dim bb As Integer

但是如果您使用 Visual Basic(VB.Net 的前身)编程,那么:

Dim aa, bb As Integer

意思是:

Dim aa As Any     'aa Is Variant
Dim bb As Integer

关于c# - 两种声明变量的方式是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570728/

相关文章:

c# - telerik radgrid 中的多个编辑列

c# - 以编程方式区分自签名证书和 CA 签名证书 - IIS 绑定(bind)

c# - 如何构建自定义 AngleSharp 元素并将 HTML 部分插入/转换到元素中

.net - 为客户端和服务器共享 WCF 契约(Contract)

c++ - 在循环中声明变量是否有任何开销? (C++)

c# - 缓存农场,读取池

c# - 当用户从上下文菜单中选择 "Copy"时如何将数据复制到剪贴板

c# - .NET DLL 中的 System.DllNotFoundException

java - for 循环内的引用类型变量声明

c - 大括号内的变量声明