首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#:在单个语句中为多个变量分配相同的值

C#:在单个语句中为多个变量分配相同的值
EN

Stack Overflow用户
提问于 2009-09-14 00:55:30
回答 11查看 164.3K关注 0票数 195

在C#中,有没有办法(只是出于好奇,因为我今天遇到了多个变量的同值赋值),可以在单个语句中一次将一个值赋给多个变量?

以下内容(伪代码):

int num1 = 1;
int num2 = 1;

num1 & num2 = 5;

也许不是,但我认为这是值得一问的,以防类似的事情确实可能发生!

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-09-14 00:57:01

它就像这样简单:

num1 = num2 = 5;

当使用对象属性而不是变量时,有趣的是知道中间值的get访问器不会被调用。对于在分配序列中访问的所有属性,只调用set访问器。

例如,一个类在每次调用getset访问器时都会写入控制台。

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;
        }
    }
}

这将输出

AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5

这意味着编译器会将该值赋给所有属性,而不会在每次赋值时都重新读取值。

票数 309
EN

Stack Overflow用户

发布于 2009-09-14 01:04:46

这将会是你想要的:

int num1, num2;
num1 = num2 = 5;

'num2 = 5‘赋值将返回赋值。

这允许你做一些疯狂的事情,比如将8赋值给num1的num1 = (num2 = 5) +3;,尽管我不建议这样做,因为可读性不是很好。

票数 61
EN

Stack Overflow用户

发布于 2011-05-27 18:44:42

int num1=5,num2=5

在同一语句中声明和赋值变量。

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1419252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档