• c#学习系列之字段(静态,常量,只读)


     C#静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量。static变量在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。

    using System;   
         using System.Collections.Generic;  
         using System.Text;   
    
         namespace Example01  
    
         {  
    
            class Program  
    
            {  
    
              class Class1   
             {  
    
                    public static String staticStr = "Class";   
                    public String notstaticStr = "Obj";  
    
             }  
    
             static void Main(string[] args)  
    
            {  
    
             //静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值  
    
             Console.WriteLine("Class1's staticStr: {0}", Class1.staticStr);   
    
             Class1 tmpObj1 = new Class1();  
    
            tmpObj1.notstaticStr = "tmpObj1";  
    
            Class1 tmpObj2 = new Class1();  
    
            tmpObj2.notstaticStr = "tmpObj2";   
    
            //非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值  
    
            Console.WriteLine("tmpObj1's notstaticStr: {0}", tmpObj1.notstaticStr);  
    
            Console.WriteLine("tmpObj2's notstaticStr: {0}", tmpObj2.notstaticStr);   
    
            Console.ReadLine();  
    
           }  
    
         }   

    输出结果:

    常量是隐式的静态变量,所以基本属性和静态变量差不多的。对他们的访问只有是用类才能访问,不能用实例化对象访问的,例如:

    int staic a;

    class p = new class();

    p.a//这样是错误的,只有通过类才能访问的

    下面介绍的是只读字段(对其赋值要特别注意):

    未来为我而来,在自己的手中
  • 相关阅读:
    无标题
    UVA 11987 并查集删点
    屯题 (bestcoder #62~#75)
    codeforces 293E Close Vertices 点分治+滑窗+treap
    hdu4670 Cube number on a tree 点分治
    hdu4812 D Tree 点分治
    poj2112 Boatherds 点分治
    HDU 4866 Shooting 二分+主席树
    poj1741 Tree 点分治
    关于点分治。。。
  • 原文地址:https://www.cnblogs.com/anthow/p/3367313.html
Copyright © 2020-2023  润新知