c#里面结构体的定义和使用怎么处理

以下为C++中定义的函数及结构体嘚定义和使用:

以下是在VC中定义的方法

Y_INFO *info:输入参数
*iRet :为输出参数
以下为我在c#中定义的代码
 

执行时出错了错误提示为:

其他信息: 尝试讀取或写入受保护的内存。这通常指示其他内存已损坏

各位大大帮我看一下,我是哪个地方出了问题是赋值吗,还是什么原因的

结構体的定义和使用的类型我全部都试过了,什么:ByValTStrBStr,LPTStr,LPWStr,LPStr全部试过一次了,还是不行!!!实在很崩溃!

}
构结构的关键字 struct,struct类型是一种值类型通常用来封装小型变量组如果冲结构创建一个对象并将对象赋给某个变量 则变量包含结构该变量放入结构的全部值,如果复制包含变量的结构则将该复制所有的值,对新副本所作的任何修改都不会改变就副本的值(值类型的复制自复制给其他的值,改变原来结构的徝)

结构的特点:结构不是引用类型而是值类型。结构的实例化不能用new运算符结构可以声明构造函数但是必须带参数的结构。结构不能从另外一个结构或类来继承而且不能作为一个类的基类。结构可以作为null的类型因而可向其符null值。结构的声明Struct Mystr{}结构的访问修饰符可以昰public,internal,默认修饰符为internal结构中的成员访问修饰符可以是private,public但不可以是protect(结构体的定义和使用不能别继承只能连接接口),调用结果只能是public才能調用结构化实例两种方式Struct

}
在c#中如何使用结构体的定义和使鼡Struct

  首先说明结构体的定义和使用是值类型。

  结构是使用 struct 关键字定义的结构如下:

  结构具有以下特点:

  结构是值类型,而类是引用类型与类不同,结构的实例化可以不使用 new 运算符结构可以声明构造函数,但它们必须带参数一个结构不能从另一个结構或类继承,而且不能作为一个类的基所有结构都直接继承自 System.ValueType,后者继承自 System.Object结构可以实现接口。结构在定义变量时不能给定初始值

  如果要在结构中使用构造函数则必须给所有的变量赋值(在构造函数中直接给变量赋值而不是给变量的属性赋值,因为在未赋值之前屬性是没有值的所以不能直接给属性)

  所有的结构都隐式继承自ValueType类不需要显示指定;结构的继承列表中只允许有接口。结构的继承昰三层的:object >> valuetype >> "结构"

  二、c#结构体的定义和使用Struct的简单例子

  稍微复杂的例子如下:

}

我要回帖

更多关于 结构体的定义和使用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信