少有人走的路

勇哥的工业自动化技术网站

C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量

示例代码如下:

public struct SpiderResult
    {        
        public string robotName;
        public string RobotName
        {
            get { return robotName; }
            set { robotName = value; }
        }
        public int num;
        public int totalNum;
    }
    public class TestClass
    {
        public SpiderResult spider = new SpiderResult();
        public SpiderResult Spider 
        {
            get { return spider; }
            set { spider = value; }
        }
    }

调用如下:

public partial class Form1 : Form
    {  
        public Form1()
        {
            TestClass testclass = new TestClass();
            testclass.Spider.RobotName = "Baidu";//编译出错
        }
}

//编译错误

错误 CS1612: 无法修改“SpiderAnalysis.TestClass.Spider”的返回值,因为它不是变量

解决方法:

方法一:

把struct替换成class

方法二:

如果非要用struct不可的话,需重新生成一个所用到的struct,即设置一个中间变量:

public partial class Form1 : Form
{
    public Form1()
    {
        TestClass testclass = new TestClass();
        SpiderResult tempSpider = new SpiderResult();
        tempSpider.robotName = "Baidu";
        testclass.Spider = tempSpider;
    }
}


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864