有没有办法(出于好奇,因为我今天遇到了多个相同值的多个变量赋值)在C#中在一个语句中一次为一个多个变量分配一个值?
沿着这些方向的东西(伪代码):
int num1 = 1;
int num2 = 1;
num1 & num2 = 5;
Run Code Online (Sandbox Code Playgroud)
可能不是,但我认为值得询问,以防有类似的事情真的可能!
Pie*_*ant 240
它很简单:
num1 = num2 = 5;
Run Code Online (Sandbox Code Playgroud)
当使用对象属性而不是变量时,有趣的是知道get
不调用中间值的访问者.仅为set
分配序列中访问的所有属性调用访问器.
例如,每次调用get
和set
访问器时写入控制台的类.
static void Main(string[] args)
{
var accessorSource = new AccessorTest(5);
var accessor1 = new AccessorTest();
var accessor2 = new AccessorTest();
accessor1.Value = accessor2.Value = accessorSource.Value;
Console.ReadLine();
}
public class AccessorTest
{
public AccessorTest(int value = default(int))
{
_Value = value;
}
private int _Value;
public int Value
{
get
{
Console.WriteLine("AccessorTest.Value.get {0}", _Value);
return _Value;
}
set
{
Console.WriteLine("AccessorTest.Value.set {0}", value);
_Value = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将输出
AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5
Run Code Online (Sandbox Code Playgroud)
这意味着编译器会将值分配给所有属性,并且每次分配时都不会重新读取该值.
aar*_*onb 54
这将是你想要的:
int num1, num2;
num1 = num2 = 5;
Run Code Online (Sandbox Code Playgroud)
'num2 = 5'赋值将返回指定的值.
这允许你做疯狂的事情,如num1 = (num2 = 5) +3;
将分配8到num1,虽然我不建议这样做,因为不是非常可读.
Zai*_*Ali 31
int num1=5,num2=5
Run Code Online (Sandbox Code Playgroud)
在同一语句中声明和分配变量.
SLa*_*aks 11
试试这个:
num1 = num2 = 5;
Run Code Online (Sandbox Code Playgroud)
请注意,这在VB中不起作用.
这现在是 C# 中的一件事:
var (a, b, c) = (1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
通过执行上述操作,您基本上已经声明了三个变量。a = 1
,b = 2
和c = 3
。全部在一行中。
小智 6
语法短一些,但采用其他人已经说过的。
int num1, num2 = num1 = 1;
Run Code Online (Sandbox Code Playgroud)
int num1, num2, num3;
num1 = num2 = num3 = 5;
Console.WriteLine(num1 + "=" + num2 + "=" + num3); // 5=5=5
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
117054 次 |
最近记录: |