对象和类型(结构、弱引用、扩展方法)
2018-06-18 00:54:32来源:未知 阅读 ()
1 public class Program1 2 { 3 #region 结构 4 //结构是值类型,存储在栈上 5 //1:结构中的成员变量不能有初始值 6 //2:结构中不能声明无参数构造函数 7 struct Example 8 { 9 //public int Width = 1;//错误 10 //public int Height = 1;//错误 11 12 public int Width;//正确 13 public int Height;//正确 14 15 //错误 16 //public Example() 17 //{ 18 19 //} 20 21 //正确 22 public Example(int width, int height) 23 { 24 Width = width; 25 Height = height; 26 } 27 } 28 #endregion 29 }
1 public class Program1 2 { 3 public class MyClass 4 { 5 public int value { get; set; } 6 } 7 8 static void Main(string[] args) 9 { 10 //一般实例化类型的时候,垃圾回收器一般不会清理对象的内存 11 //MyClass myClass = new MyClass();//这种声明属于强引用 12 13 #region 弱引用 14 //弱引用实例化的时候,垃圾回收器可能会回收掉对象释放内存 15 //所以使用的时候,需要判断应用是否存在 16 17 WeakReference reference = new WeakReference(new MyClass()); 18 19 MyClass myClass = reference.Target as MyClass; 20 21 if (myClass != null) 22 { 23 myClass.value = 10; 24 25 Console.WriteLine(myClass.value); 26 } 27 28 //回收 29 GC.Collect(); 30 31 if (reference.IsAlive) 32 { 33 myClass = reference.Target as MyClass; 34 35 myClass.value = 1; 36 37 Console.WriteLine(myClass.value); 38 } 39 else 40 { 41 Console.WriteLine("引用不存在"); 42 } 43 44 #endregion 45 46 } 47 } 48 }
1 public class Program1 2 { 3 public class MyClass 4 { 5 public int Value { get; set; } 6 } 7 8 #region 扩展方法 9 10 /// <summary> 11 /// MyClass的扩展方法;扩展方法必须是静态的,如果扩展方法与原方法重名, 12 /// 优先调用原方法;注意this 13 /// </summary> 14 public static class MyClassExtension 15 { 16 public static int GetValue(this MyClass myClass, int addValue) 17 { 18 return myClass.Value + addValue; 19 } 20 21 } 22 23 #endregion 24 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:c# 多线程 创建对象实例
下一篇:c# 设计模式之单例模式
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- SWIG 3 中文手册——11. 类型映射 2020-06-07
- Visual Studio 2019提示不能将const char*类型的值分配到con 2020-06-07
- C++ 共用体 2020-06-05
- C++ 对象的初始化和赋值 2020-06-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash