C#中静态类、静态方法和静态变量的简单说明
2018-06-17 20:30:16来源:未知 阅读 ()
静态方法与静态变量一样,属于类本身,而不属于哪个类的一个对象。调用一个被定义为static的方法,只有通过在它前面加上这个类的名称。一般定义里说是可以通过实例调用的。其他语言我还没测试,但是在C#中是不行的,只能通过类型名称引用它(静态变量也是哦)。
1 class Class1 2 { 3 public static string No { set; get; } 4 public string Second { set; get; } 5 6 public static void Wmt() 7 { 8 No = "我是静态成员"; 9 } 10 11 } 12 13 class Class2 14 { 15 public void Test() 16 { 17 Class1.Wmt(); 18 Class1.No = "我是静态成员"; 19 var class1 = new Class1(); 20 class1.Second = "我是非静态成员"; 21 22 } 23 24 }
还有几点:
1、静态方法只能调用类的静态成员,但它内部是可以定义变量的(常量也能放在静态方法里(编译器会隐式设置为静态))
2、一般方法也可以调用静态成员
1 class Class1 2 { 3 public static string No { set; get; } 4 public string Second { set; get; } 5 6 public static void Wmt() 7 { 8 string variate = "我是个变量"; 9 No = "我是静态成员"; 10 } 11 12 public void Www() 13 { 14 No = "我是静态成员"; 15 } 16 17 }
如果类只包含静态方法、属性,那它就是静态类
1 static class class1 2 { 3 public static string No { set; get; } 4 5 public static void Wmt() 6 { 7 8 } 9 }
再提下常量和只读字段的区别吧:
常量是一个包含不能修改的值的变量,它是静态的。而只读字段不仅能在声明时初始化,还能在构造函数中赋值,适合用于要通过计算才能确定初始值。只读字段还能是个实例字段哦,类的每个对象都能有不同的值。注意:不一定非要在构造函数中给只读字段赋值,如果没有赋值,它的值就是特定数据类型的默认值。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApplication3 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 var cl = new class1("I'm readonly"); 13 var c2 = new class1("I'm readonly too"); 14 var c3 = new class1(); 15 Console.WriteLine(cl.Wmt); 16 Console.Write(c2.Wmt); 17 Console.Write(c3.Wmt); 18 Console.Read(); 19 } 20 } 21 public class class1 22 { 23 public readonly string Wmt; 24 public class1(string words) 25 { 26 Wmt = words; 27 } 28 29 public class1() 30 { 31 } 32 } 33 34 }
运行结果:
复习下知识,再把基础的东西翻出来看看,别有一番体会~~
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi 调用C# 编写的DLL方法 2019-10-28
- PHP保留两位小数的几种方法 2019-08-16
- PHP页面静态化 2018-07-22
- 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lamb 2018-06-21
- MVC学习一:EF 2018-06-21
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