zoukankan      html  css  js  c++  java
  • 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//这样是错误的,只有通过类才能访问的

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

    未来为我而来,在自己的手中
  • 相关阅读:
    malloc函数具体解释
    Linux pipe函数
    秒杀多线程第四篇 一个经典的多线程同步问题
    LayoutInflater
    D3DXMatrixMultiply 函数
    用qsort排序
    Memcahce(MC)系列(一)Memcache介绍、使用、存储、算法、优化
    ANDROID L——Material Design综合应用(Demo)
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    uva 10054 The Necklace(欧拉回路)
  • 原文地址:https://www.cnblogs.com/anthow/p/3367313.html
Copyright © 2011-2022 走看看