博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量
阅读量:7070 次
发布时间:2019-06-28

本文共 1106 字,大约阅读时间需要 3 分钟。

示例代码如下:

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

参考文章:

MSDN:  ( ) 

看一下就知道了,中文的比英文原版的逊多了 
 
延伸阅读: 
 

 


作者:()

原文地址:

转载地址:http://veqll.baihongyu.com/

你可能感兴趣的文章
【Android】自定义ImageView实现图片的平移、缩放、旋转(手势操作)
查看>>
SDNU 1539 Do you like Hot Dog ?
查看>>
Go语言基础之反射
查看>>
9.Java5线程并发库的应用
查看>>
OpenCV load 运行出错 cv::Exception 出错
查看>>
通过本地yum源安装软件报错[Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"...
查看>>
android常用调试工具fiddle、wireshark和android studio的配置
查看>>
Java实现几种常见排序方法
查看>>
NOIP2017 复盘
查看>>
jxa快速入门,Javascript已加入AppleScript全家桶
查看>>
洛谷P3622 动物园
查看>>
Angular Encapsulation - css选择器选不到非angular组件(插件)
查看>>
iOS开发之UIScrollView
查看>>
mysql 使用 insert ignore into和unique实现不插入重复数据功能
查看>>
c++操作符重载_12
查看>>
初步探讨线程问题
查看>>
eclipse 安装反编译工具
查看>>
我的Java开发学习之旅------>Java多线程下载文件 实例
查看>>
WireShark简单使用以及TCP三次握手
查看>>
什么是@guid
查看>>