首页 / 知识
关于c#:您可以在struct中有一个类吗?
2023-04-15 16:59:00

Can you have a class in a struct?在C#中是否可能有一个Struct,且其成员变量是Class类型?如果是这样,信息将存储在堆栈,堆或两者上的什么位置? 是的,可以。指向类成员变量的指针与其余结构的值一起存储在堆栈中 结构也可以包含类定义作为成员(内部类)。 这里有一些真正无用的代码,至少可以编译并运行以表明它是可能的:
类内容存储在堆中。 对类的引用(与指针几乎相同)与结构内容一起存储。结构内容的存储位置取决于它是局部变量,方法参数还是类的成员,以及它是否已被装箱或被闭包捕获。 如果struct的字段之一是类类型,则该字段将包含类对象的标识或null引用。如果所讨论的类对象是不可变的(例如 通常,除非有以下两种情况之一,否则应避免在结构中存储可变的类类型: 请注意,方案#1在泛型类型中很常见;例如,有一本字典的"值"是可变对象的身份是很常见的。枚举该字典将返回 场景#2不太常见。遗憾的是,没有办法告诉编译器,除属性设置器之外的结构方法将修改结构,因此,在只读上下文中应禁止使用它们。可能有一个行为类似于 这样做可能不建议这样做:请参阅http://msdn.microsoft.com/en-us/library/ms229017(VS.85).aspx
|
最新内容
相关内容
linux内置命令位置?
linux内置命令位置?,工作,系统,信息,地址,位置,标准,命令,目录,密码,名字,Linux系统常用操作命令有哪些1、linux常用命令: pwd命令 该命令的linux文件结构命令?
linux文件结构命令?,系统,数字,技术,设备,传播,第一,管理,数据,发展,目录,Linux目录结构也就是说,Linux下只有一个单独的树状结构。而在微软操查看linux类型命令?
查看linux类型命令?,系统,信息,命令,状态,数据,数字,情况,地址,类型,文件,linux查看系统命令是什么1、linux怎么查看系统版本呢,下面就让我们来linux删除类型命令?
linux删除类型命令?,系统,档案,命令,文件,名称,环境,数据,不了,目录,文件夹,关于linux的删除命令命令格式:rm [选项] 文件… 命令功能:删除一个linux目录结构树命令?
linux目录结构树命令?,系统,工作,信息,数据,设备,管理,目录,发展,时间,结构,Linux系统常用操作命令有哪些1、linux常用命令: pwd命令 该命令linux命令防火墙位置?
linux命令防火墙位置?,系统,服务,软件,密码,状态,位置,防火墙,工具,公共,设备,LINUX系统怎么关闭防火墙1、打开linux系统,在linux的桌面的空白查看linux库类型命令?
查看linux库类型命令?,系统,工作,信息,状态,电脑,命令,工具,代码,地址,发行,如何查看Linux上程序或进程用到的库查看程序依赖的动态库:readelflinux网卡类型命令?
linux网卡类型命令?,网络,系统,地址,信息,设备,状态,服务,名称,名字,网卡,如何配置Linux网卡配置网卡地址:点击 网络(K) 按钮进行配置网络 选择linux查询表结构命令?
linux查询表结构命令?,系统,标准,信息,数据,地址,设备,时间,适当,软件,命令,linux下怎么用tree命令以树形结构显示文件目录结构1、以Ubuntu为linux保留堆栈命令?
linux保留堆栈命令?,地址,工作,系统,信息,管理,命令,目录,代码,名称,连续,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、calinux光标位置命令?
linux光标位置命令?,位置,光标,时间,系统,状态,终端,命令,程序,文件,菜单,linux下编辑文件时如何定位光标到文件末尾1、首先登录到Linux系统。linux查看命令类型用?
linux查看命令类型用?,信息,系统,情况,命令,实时,工作,设备,电脑,文件,类型,如何区分linux文件类型?1、普通文件类型 Linux中最多的一种文件类