`

C# - Struct doest not allow redifinition of the parameterless constructor

    博客分类:
  • C#
c# 
阅读更多

If you are familiar with the C# construct structure, than you may probably be familiar with the structure, while structure will group the members in continous memory, and it is more lightweight than classses and believes to create less fragment than the class (reference types).

    private struct CPSSOWDeleteTuple
    {
      public CPSMessage Data { get; set; }
      public CPSMessage Schema { get; set; }

      public CPSSOWDeleteTuple(CPSMessage data, CPSMessage schema) 
      {
        Data = data;
        Schema = schema;
      }
 

There is somthing that you may not be very clear about the structure types. for one thing, since a struct cann not be empty, so the compiler will generate a default constructor so it can fit in many application situation such as the List<struct> or Map<...,struct>;

 

 

Let 's see one example, suppose we have a struct which is called CPSSOWDeleteTuple, and this tuple has two member, one represents a Data and the other represents a schema, and both the Data and the Schema are of the type of "CPSMessage";

 

 

 

   private struct CPSSOWDeleteTuple
    {
      public CPSMessage Data { get; set; }
      public CPSMessage Schema { get; set; }
   }
 

 

now, we want to provide some constructor which is not an void paramters list. if you directly do this: 

 

    private struct CPSSOWDeleteTuple
    {
      //... same as before

      public CPSSOWDeleteTuple(CPSMessage data, CPSMessage schema) 
      {
        Data = data;
        Schema = schema;
      }
   }

 

 

you will get an error, basically it will say that "Backing field for autmatically implemented property '...Data' Must be fully initialized before control is returned to the caller. Consider calling the default constructor from a constructor initializer"....

 

it does not make much sense, but I do know somewhere to make clean of this error: here ist the modified version of the CPSSOWDeleteTuple.

 

public CPSSOWDeleteTuple(CPSMessage data, CPSMessage schema) : this()
      {
        Data = data;
        Schema = schema;
      }

 

As you can see, you have to call the parameterless constructor in another constructor, then the compiler will stop complaining...

 

分享到:
评论

相关推荐

    前端开源库-brisky-struct

    **前端开源库-brisky-struct** Brisky-Struct 是一个专为前端开发设计的轻量级开源库,它提供了一种高效、可观察的数据结构,旨在优化前端应用的状态管理和数据流控制。在现代Web开发中,随着单页应用(SPA)的普及...

    ref-struct

    But as soon as you create an instance of the struct type, then the struct type is finalized, and no more properties may be added to it. var ref = require('ref') var StructType = require('ref-struct'...

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

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

    Armink-struct2json-master.zip

    《深入理解Armink-struct2json工具:从结构体到JSON的转换之道》 在现代软件开发中,数据交换和序列化是至关重要的环节。JSON(JavaScript Object Notation)因其简洁明了的格式,被广泛应用于跨平台的数据交互。 ...

    GPU-grid-block-thread-OpenMP-struct

    GPU-grid-block-thread-OpenMP-struct,GPU-grid-block-thread-OpenMP-struct

    lpeg-0.12.2-struct-0.2

    《深入理解LPEG与Struct:解析lpeg-0.12.2-struct-0.2组合包》 在IT领域,高效的文本处理和解析能力是至关重要的,尤其是在编程语言和编译器设计中。LPEG(Lua Pattern Grammar)和Struct就是这样的两个工具,它们...

    Swift-Class-Struct Swift-Class-Struct

    在Swift编程语言中,`Class`和`Struct`是两种主要的复合类型,它们用于创建自定义的数据结构和实现特定的功能。本篇文章将深入探讨Swift中的`Class`和`Struct`,以及它们之间的区别和使用场景。 首先,我们来看`...

    06.hive数据类型--复合类型--struct结构类型的使用.mp4

    06.hive数据类型--复合类型--struct结构类型的使用.mp4

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

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

    Python库 | web-to-struct-1.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:web-to-struct-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PIC-struct.rar_pic struct_pic的struct_单片机结构体

    在单片机编程中,尤其是使用C语言进行开发时,结构体(Struct)是一种非常重要的数据类型。结构体允许我们将不同类型的数据组合成一个单一的实体,便于管理和操作。本资料"PIC-struct.rar"主要针对PIC单片机,详细...

    结构化学-struct_chem_1011_21_48.ppt

    结构化学-struct_chem_1011_21_48

    ch10-C-struct-union.rar_struct and union_union

    在提供的压缩包文件 "ch10-C-struct-union" 中,很可能包含了一些示例代码,演示了如何定义、初始化和操作结构体和联合体,以及如何访问和输出它们的成员。这些实例可以帮助你更好地理解这两个概念,并通过实践加深...

    matlab开发-struct2ws

    在MATLAB编程环境中,"struct2ws"是一个用于将结构体转换为Web服务数据格式的函数。这个功能在处理与Web服务交互时尤其有用,因为Web服务通常接收和返回XML或JSON格式的数据,而MATLAB中的结构体可以方便地表示复杂...

    matlab开发-struct2double

    在MATLAB编程环境中,`struct2double`是一个非常实用的函数,主要用于将结构体(struct)数据转换成双精度浮点数(double)数组。这个功能在处理大量结构体数据时尤其有用,例如当你需要对结构体数组进行数值计算...

    matlab开发-STRUCT2STR

    在MATLAB编程环境中,`struct2str`是一个非常实用的内置函数,用于将结构体(struct)转换成字符向量(char字符串)。这个功能在数据处理、存储和调试时非常有用,因为它能让我们以文本形式查看或记录结构体的内容。...

    pack-struct.md

    # 改变结构体成员的字节对齐 ## 例子 #include typedef struct { char a; int b; } ST_A;

    koa-struct:Koa struct中间件

    koa-struct Koa struct中间件安装koa-struct要求koa2 考阿体路由器npm install koa-struct --save例子基本用法const struct = require ( 'koa-struct' ) ;const body = require ( 'koa-body' ) ;const Router = ...

    golang struct 自动生成工具

    https://github.com/whr-helen/go-struct-auto 自动构建工具使用 安装包命令:go get github.com/whr-helen/go-struct-auto 注释:参数信息 -host host改为自己数据库的地址(默认127.0.0.1) -port port改为...

Global site tag (gtag.js) - Google Analytics