C#把结构体清0

allenhiman 2010-08-17 07:49:46
如何像c++一样把一个c#结构体清0呢
C++用ZeroMemory memecpy之类的就可以了

struct myStrut
{
public int a;
public int b;
}

myStruct sta = new myStruct();
sta.a=10;
sta.b=10;

如何让sta.a,sta.b都为0?

另外c#如何销毁一个new出来的对象
比如我不想用sta了 如何销毁它?
...全文
1919 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
youaway 2010-08-25
  • 打赏
  • 举报
回复
学习了,楼主结贴吧
happyer_longlong 2010-08-24
  • 打赏
  • 举报
回复
 能不用结构体,最好不用,用类就ok
allenhiman 2010-08-24
  • 打赏
  • 举报
回复
高手啊 我是C#初学者 谢谢 各位达人了
cactus123456 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 flashelf 的回复:]
引用 8 楼 cactus123456 的回复:
引用 5 楼 flashelf 的回复:
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
pub……
[/Quote]

学习了,的确不会指向相同的空间。struct和class的确不同,因为没有用过struct,所以不太了解
myStrut strut;
strut.a = 10;
strut.b = 10;

strut = myStrut.Empty;
一句话是不是要完成2件事,1自动释放了开始定义的空间,2并创建了新的空间给strut
supercpu123 2010-08-18
  • 打赏
  • 举报
回复
结构是定义在栈上的,出了定义域就自动从内存清除了,根本不存在GC回收的说法

GC那是用在堆中垃圾数据上的
lantianwangzhao 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cactus123456 的回复:]
引用 5 楼 flashelf 的回复:
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
public int b;
}
static void……
[/Quote]
应该不会吧!
cactus123456 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 flashelf 的回复:]
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
public int b;
}
static void Main(string[] args)
……
[/Quote]

静态方法清零,如果myStrut定义2个全局变量,strut1,strut2,当2个变量都调用清零时,会不会指向相同的空间?
cactus123456 2010-08-18
  • 打赏
  • 举报
回复
或者
struct myStrut
{
public void clear()
{
a = 0;
b = 0;
}
public int a;
public int b;
}
denbes 2010-08-18
  • 打赏
  • 举报
回复
自己做一个清空方法.
曲滨_銘龘鶽 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cactus123456 的回复:]
引用 5 楼 flashelf 的回复:
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
public int b;
}
static void……
[/Quote]

当然不会了,struct 又不是 class
wangxianshou 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 flashelf 的回复:]
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
public int b;
}
static void Main(string[] args)
……
[/Quote]

不错
曲滨_銘龘鶽 2010-08-17
  • 打赏
  • 举报
回复
C# 没必要释放了尤其是这东西,在new 一个就可以了,之前的对象 GC 会替你清除掉的;

也可以做一个 Empty 变量;来清 0 如下

struct myStrut
{
public static readonly myStrut Empty;
public int a;
public int b;
}
static void Main(string[] args)
{
myStrut strut;
strut.a = 10;
strut.b = 10;

strut = myStrut.Empty;
}
andybang1981 2010-08-17
  • 打赏
  • 举报
回复
C#中局部变量出方法体自动会被GC回收的,不考虑性能方面的话是不需要考虑的
wuyq11 2010-08-17
  • 打赏
  • 举报
回复
byte[] array = new byte[100];
array[1] = 1;
Array.Clear(array, 0, array.Length);
Console.Write(array[1]);

云瑀 2010-08-17
  • 打赏
  • 举报
回复
预设就是0了
而且GC会自动回收,所以只要new就好
Peter200694013 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 allenhiman 的回复:]
另外c#如何销毁一个new出来的对象
比如我不想用sta了 如何销毁它?
[/Quote]
不用你来销毁,系统会为你来完成

《C How to Program,Fifth Edition》(中文名:《C大学教程》),作者:【美】P.J.Deitel、【美】H.M.Deitel,翻译:苏小红、李东、王甜甜,出版社:电子工业出版社,ISBN:978-7-121-05662-8,PDF 格式,大小 352 Mb,被压缩为 7 部分,本资源是第一部分;第一部分下载地址:http://download.csdn.net/source/3289551;第二部分下载地址:http://download.csdn.net/source/3286123;第三部分下载地址:http://download.csdn.net/source/3285981;第四部分下载地址:http://download.csdn.net/source/3284551;第五部分下载地址:http://download.csdn.net/source/3283848;第六部分下载地址:http://download.csdn.net/source/3290125;第七部分下载地址:http://download.csdn.net/source/3280289。 七个资源在一起解压缩后(windows 平台下解压缩)即可得到《C大学教程(第五版·中文版)》.pdf 一书。 内容简介: 本书是全球最畅销的C语言教程之一。本书系统地介绍了四种当今流行的程序设计方法——面向过程、基于对象、面向对象以及泛型编程,内容全面、生动、易懂,作者由浅入深地介绍结构化编程及软件工程的基本概念,从简单的概念到最终完整的语言描述,晰、准确、透彻、详细地讲解C语言,尤其注重程序设计思想和方法的介绍。相对于以往的版本,在内容方面,本书新增加了介绍C99标准、排序、基于Allegro C函数库的游戏编程以及有关C++面向对象程序设计的章节,并且在附录中增加了Sudoku游戏程序设计的讲解。新加入的“活代码”方法(即通过可执行的代码来讲解理论概念的方法)是本书的另一特色,它可以促进学生积极地参与到程序设计中来。突出显示的各种程序设计提示,则是作者多年教学经验的总结。 本书不仅适合于初学者学习,作为高校计算机程序设计教学的教科书,也同样适用于有经验的程序员,作为软件开发人员的专业参考书。 内容预览: 第1章 计算机、Internet和万维网导论 第2章 C语言程序设计入门 第3章 结构化的C程序设计 第4章 C程序控制 第5章 C函数 第6章 C数组 第7章 C指针 第8章 C字符和字符串 第9章 格式化输入输出 第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章 C99简介 第18章 C++,一个更好的C;介绍对象技术 第19章 类与对象简介 第20章 类;深入剖析(第1部分) 第21章 类;深入剖析(第2部分) 第22章 运算符重载 第23章 面向对象编辑:继承 第24章 面向对象编程:多态 第25章 模板 第26章 输入/输出 第27章 异常处理 附录A 因特网和Web资源、 附录B 运算符优先级表、 附录C ASCLL字符集 附录D 数制系统 附录E 游戏编程:求解Sudoku问题 索引

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧