`

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

 
阅读更多
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;
    }
}

分享到:
评论

相关推荐

    mapstruct-1.3.1.Final-API文档-中英对照版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

    C#中结构体struct和字节数组Byte的之间的转换函数

    在C#中,`struct`是一种值类型,它允许开发者定义自己的数据类型,包含多个字段和方法。而在网络通信过程中,如TCP/IP协议栈,只能处理原始的字节流,这意味着我们需要将自定义的数据类型转换为字节数组进行传输。...

    xml和struct之间的相互转换

    XML(eXtensible Markup Language)和C语言中的struct是两种不同的数据表示方式。XML是一种用于标记数据的标准化格式,而struct是C语言中用来结构化数据的类型。在编程中,有时我们需要在两者之间进行转换,以实现...

    轻量级JavaEE企业应用实战代码(第四版):Struct2+Spring4+Hibernate

    轻量级JavaEE企业应用实战 代码(第四版):Struct2+Spring4+Hibernate

    共享struct2string由结构体变量获得其创建语句-struct2string.rar

    共享struct2string由结构体变量获得其创建语句-struct2string.rar 本帖最后由 黄小标 于 2012-9-27 21:19 编辑 struct2string 顾名思义就是将struct变量变成字符串,此处字符串是此变量的创建语句。 不才,...

    C++到C#数据类型转换

    C++ 到 C# 数据类型转换 在软件开发中,数据类型转换是一个非常重要的步骤,特别是在使用不同的编程语言时。C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# ...

    struct2官方api,很详细,可离线

    6. JSON转换:Struct2 支持与JSON格式的互转,`to_json()` 可将数据结构转换为JSON字符串,`from_json(json_str)` 则可以将JSON字符串解析为Struct2对象。 三、Struct2进阶用法 1. 自定义类型:你可以定义自己的...

    C# 结构体集合元素属性不可修改疑惑

    也可能有人说会,因为它是通过集合索引来操作的,集合本身时引用类型,集合索引取得的将是集合引用的一个地址按理应该也是引用类型的。 结论:结果可能会大跌眼镜,结果是C#编译器根本通不过这样的修改,有关...

    c# 认知结构(C# Struct)

    在C#编程语言中,`Struct`是一种值类型,它定义了一组相关数据的集合,类似于其他语言中的结构体或类。与类不同,结构体是栈分配的,这意味着它们的实例存储在内存堆栈中,而不是在堆上。这带来了性能上的优势,因为...

    delphi代码转成C#的小工具

    总之,“delphi代码转成C#的小工具”是开发过程中的一大助力,它通过自动化的方式减少了手动转换的工作量,使得开发者能够更加专注于软件的功能实现和优化,而不是基础语法的转换。然而,值得注意的是,任何自动化的...

    [免费高清PDF版]Effective_C#_中文版改善C#程序的50种方法.rar

    1. **理解值类型和引用类型**:C#中的基本数据类型(如int、double)是值类型,而类实例是引用类型。理解它们之间的差异对于避免意外的复制和性能问题至关重要。 2. **利用`using`语句**:`using`语句可以确保资源...

    C#结构体和C++字节数组的转换

    在跨语言通信或数据交换中,尤其是在涉及到C#与C++之间进行TCP通信时,由于两者数据表示方式的差异,可能会遇到将C#中的结构体转换为C++可理解的字节数组,或者反过来的过程。本文将详细介绍如何在C#中实现结构体与...

    C#中结构(struct)的部分初始化和完全初始化实例分析

    在C#编程语言中,结构(struct)是一种值类型,与类(class)不同,它在内存中的存储方式和行为有所区别。本文将深入探讨结构的两种初始化方式:部分初始化和完全初始化,并通过实例分析其特点和注意事项。 首先,...

    c# List find()方法返回值的问题说明(返回结果为对象的指针)

    C#中List中泛型T如果是一个对象的话,则利用Find函数返回的将是这个对象的指针,对其返回对象的属性进行操作,也会影响list中相应元素对象的值。验证如下:1.新建一个Class1类,其含有两个姓名和分数两个属性: 代码...

    2.1.3 C++和C#数据传递 -struct类型传递

    3. **引用传递**:C#提供了`ref`和`out`关键字,可以按引用传递struct,允许函数直接修改原始对象。 了解这些概念对于编写高效且易于维护的代码至关重要。在实际开发中,应根据具体需求选择合适的数据传递方式,...

    C_C++中typedef_struct和struct的用法

    其中,结构名是结构的标识符,而不是变量名。结构变量是指定义了结构类型的变量。 接下来,让我们来了解一下 typedef struct 的定义格式。typedef struct 的一般定义格式为: typedef struct 结构名 { 类型 变量...

    mapstruct-1.2.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.2.0.Final.jar; 赠送原API文档:mapstruct-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.2.0.Final.pom; 包含翻译后...

    mapstruct-1.1.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.1.0.Final.jar; 赠送原API文档:mapstruct-1.1.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.1.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.1.0.Final.pom; 包含翻译后...

    C/C++语法知识:typedef struct 用法详解

    这是因为在结构中包含指向它自己的指针时,编译器不知道 pNode 的类型是什么,因为 pNode 还没有被定义。 3. typedef 与结构的结合使用 typedef 可以与结构结合使用,例如: ```c typedef struct tagMyStruct{ ...

    mapstruct-1.3.1.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

Global site tag (gtag.js) - Google Analytics