#region 常量和静态变量静态类readonly
//----------------------------------------------------------------------
//常量和静态变量,静态类
//----------------------------------------------------------------------
//类的静态变量和常量,都属于类而不属于对象,不能用对象来调用,只能用类名调用
//这不同于C++,是更合理的设计
//常量的值在类定义时就确定了,不因对象而不同,因此存放在类中更合理
class CNormclass
{
class CInclass
{
public float fx = ;
}
public int _id;
public const string cname = "CNormalclass"; //1,常量仅能修饰 :数字,bool,字符串,null引用
//不能像C++那样定义一个常量对象,这真是太悲哀了,因为很多时候这可以加速数据传递,增加安全性
//由于这个原因,C#的List.ToArray每次都只能返回一个内部数组的拷贝,因此使用list存储数量较大较复杂的数据时
//不要轻易使用ToArray,直接用List就行了,它也支持下标索引方式取数组元素

const CInclass lst = null; //2,readonly也不能实现常量对象的效果
//readonly仅表示变量本身不能被赋值,但不阻止通过对象变量更改对象内的字段
//onc.readonlyobj.fx = 20
public float fx = ; private readonly CInclass readonlyobj = new CInclass(); public static void Test()
{
//1,不能调用非静态字段或方法
//this._id = 20; //error,没有this指针 //2,可以调用常量字段
var lname = cname; var onc = new CNormclass(); //私有变量在类的静态方法也可以访问
//2,虽然不能更改readonlyobj本身的值,却可以更改其内部成员的值,这就是readonly的作用
onc.readonlyobj.fx = ;
}
}
static class C712//类中类,默认为私有
{//静态类不能实例化,且只能声明:常量,静态常量,静态属性,静态方法
public const int constX = ; //1,常量
public static int staticX = ; //2,静态常量
public static int ix { set; get; } //3,静态属性 //一,【静态类中不能定义实例化字段】
//public int _id; //二,【静态类中不能定义实例化字段】
//void Ctest(){ //【error: 静态类中不能定义实例化方法】
// this._id = 20;
//} static void Test()//4,静态方法
{
//三,【静态方法中不能调用非静态变量或方法,因为没有this指针】
//_id = 20; //error //四,【可以调用常量字段,这与C++不同】
var c = constX;
} }
public const int ixd = ;
public static float fx = ;
public void Testff()
{
fx = ; //等价于Program.fx = 30,而不是 this.fx = 30;
Program.fx = ;
var tx = C712.constX;
C712.staticX = ;
var ix = Program.ixd; //var oc7 = new C712(); //error 静态类不能创建实例
}

#region 常量和静态变量静态类readonly的更多相关文章

  1. 常量和静态变量会先载入内存后在进行执行php代码

    static $test=1;//在php执行前就已经写入内存$test++;var_dump($test);static $test=10;//在php执行前就已经写入内存var_dump($tes ...

  2. PHP的类中的常量,静态变量的问题。

    自己在写一个小型的 angularJS 库的时候,觉得 javascript 中的很多概念有点像是PHP中的概念. 像类常量, 类中的静态变量(类的静态变量是类的所有实例都共享的),这些概念虽然在 j ...

  3. php类相关知识----类常量,静态变量

    类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo &q ...

  4. java 静态变量生命周期(类生命周期)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  5. java中静态的代码块,静态变量,静态方法

    简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放 ...

  6. java入门---变量类型&类变量&局部变量&实例变量&静态变量

        在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下:     type identifier [ = value][, identifier [= value] ...] ; ...

  7. Swift中的类型属性(静态变量)

    http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective ...

  8. java 静态变量生命周期(类生命周期)(转)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  9. .net学习之类与对象、new关键字、构造函数、常量和只读变量、枚举、结构、垃圾回收、静态成员、静态类等

    1.类与对象的关系类是对一类事务的统称,是抽象的,不能拿来直接使用,比如汽车,没有具体指哪一辆汽车对象是一个具体存在的,看的见,摸得着的,可以拿来直接使用,比如我家的那辆刚刚买的新汽车,就是具体的对象 ...

随机推荐

  1. bzoj4129

    题解: 树上+可修改莫队 莫队的每一块 可以用一个栈 每一次dfs个数>sqrt(n)(自己选的)的时候就可以跳出了 然后不要忘记分出来最后一块 代码: #include<bits/std ...

  2. CentOS下Docker的安装及国内镜像配置

    系统,CentOS 7,最小化安装. 升级包 >$ sudo yum upgrade 安装Docker >$ sudo yum install docker 下面开始配置国内镜像.国外的实 ...

  3. springboot---数据整合篇

    本文讲解 Spring Boot 基础下,如何使用 JDBC,配置数据源和通过 JdbcTemplate 编写数据访问. 环境依赖 修改 POM 文件,添加spring-boot-starter-jd ...

  4. 转:Content-disposition中Attachment和inline的区别

    转自:http://itindex.net/detail/52857-content-disposition-attachment?utm_source=tuicool&utm_medium= ...

  5. iOS-----简易地CocoaAsyncSocket使用

    CocoaAsyncSocket使用 代理的.h文件 //GCDAsyncSocketDelegate执行代理对象 #import <Foundation/Foundation.h> #i ...

  6. ZetCode PyQt4 tutorial signals and slots

    #!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial In this example, ...

  7. .NET CORE微服务实践

    .NET CORE微服务实践 https://www.cnblogs.com/zengqinglei/p/9570343.html .NET CORE 实践部署架构图 实践源码:https://git ...

  8. windows server 2008 r2 修改远程登入的端口号(3389)

    步骤:打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal ...

  9. String.valueof;和String = ""+1;的区别

    关于字符串的+操作,单纯的String  s ="" +11;编译器会看做常量""和常量11的拼接操作,常量计算最快:String.valueOf会调用方法,速 ...

  10. pthread信号

    信号是典型的异步事件.内核在某个信号出现时有三种处理方式: 忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略: 捕捉信号,也就是在信号发生时调用一个用户函数,注意 ...