C#中静态字段声明时赋值与构造函数中赋值
C#中静态字段是属于类的,访问的时候:用类名点成员名的方式。
赋值初始化的时候,可以在声明的时候赋值,也可以在静态构造函数中赋值。
如果在声明中、静态构造函数中都赋值,那么最终该成员的值,是取自哪一个呢?
验证实例:声明一个类型Foo,含有一个静态成员,并且该静态成员在声明时、与静态构造函数中都赋了值。
成员Result属性的作用是,将最终的静态属性FooNumber的值取出
- public class Foo
- {
// 声明一个静态属性,并在声明的时候赋值- public static int FooNumber { get; set; } = 1234;
- public int Result { get; set; }
- static Foo()
- {
- FooNumber = 20;
- }
- public Foo()
- {
- Result = FooNumber;
- }
- }
Main方法
- class Program
- {
- static void Main(string[] args)
- {
- Foo foo1 = new Foo();
- Console.WriteLine($"foo1对象中的FooNumber属性的最终值:{foo1.Result}");
- Console.ReadKey();
- }
- }
控制台结果:
通过ILSpy工具查看编译后生成的代码,如下:
结论:如果类中的静态字段或者属性,在声明时与静态构造函数中都赋值,那么编译器在编译的时候,会将声明时的值移动一个位置(至静态构造函数中,且在未编译前构造函数中的赋值之前)。
从而最终显现的值为:编译前,在构造函数中所赋得值。
C#中静态字段声明时赋值与构造函数中赋值的更多相关文章
- oracle 数据库中某个字段逗号分隔,得到对应列中的个数(列转行)实现方法
由于各种原因,数据的原则问题,导致某个字段上出现多个数据(依据分隔符隔开),比如 name 字段为 张三;李四;王五等等 需求:求一张表中name字段中出现的个数: 想要得到的结果为: 对应的sql语 ...
- resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致
1.1.1.1. 步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启 其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用 ...
- java中子类继承父类时是否继承构造函数
来源:http://www.cnblogs.com/sunnychuh/archive/2011/09/09/2172131.html --------------------- java继承中对构造 ...
- C#字段声明部分如何调用该类中的方法进行初始化?
问题描述: 有时,功能需求,需要在初始化字段时,需要视不同情况赋予不同字段值. 解决办法: 将方法设为static即可. e.g. public string str = SetStr(); publ ...
- 在浏览器中打开php文件时,是Linux中的哪个用户执行的?
https://segmentfault.com/q/1010000002541340 如题,这样我就可以针对这个用户设置权限了.而且这个用户是怎么关联上的,怎么查看? 解答一: .是执行 PHP 指 ...
- 循环取到json中的字段数据,加到html中
$.ajax({ type:'post', data:{specialName:specialName,count:count}, url:"admin/pcAdminGetArticleL ...
- iOS开发中的错误整理,重写的构造函数中,没有通过self调用
- Java中的字段和属性
Java中的属性,通常可以理解为get和set方法.而字段,通常叫做“类成员”. 属性只局限于类中方法的声明,并不与类中其他成员相关.例如:void setA(String s){}String ge ...
- 面向对象银角大王补充2-self就是调用当前方法的对象-静态字段,公有属性-封装的理解-继承的理解,普通方法,静态方法
self是什么,就是一个函数,就是一个形式参数 4.self就是调用当前方法的对象 静态字段,公有属性 静态字段使用场景,每个对象中保存相同的东西时,可以使用静态字段,公有属性 5.封装的理解 类中封 ...
- Python之路【番外篇】回顾&类的静态字段
回顾 回顾:字符串.列表.字典的修改关于内存的情况 一.字符串 str1 = 'luotianshuai' str2 = str1 print id(str1) print id(str2) prin ...
随机推荐
- Python3 学习基础知识
python是动态语言(对象属性可以动态改变,删除添加..),不是强类型语言,所以和java,c/c++等强类型静态语言有不一样地方需要注意. 一:基本数据类型 变量 counter = 1 # ...
- uniapp 离开界面清除计时器
onLoad() { // APP启动引导图逻辑判断显示 if (uni.getStorageSync("startImgSt ...
- MySQL_demo_50道习题
title: MySQL_demo_50道习题 author: 杨晓东 permalink: MySQL_demo date: 2021-10-02 11:27:04 categories: - 投篮 ...
- MongoDB 用户及权限增删
本文主要是MongoDB4.X的操作 一.MongoDB用户创建 MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问. 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限 ...
- 时钟频率(HZ)与数据传输速率(bit/s)的关系-转载
(24条消息) 时钟频率(HZ)与数据传输速率(bit/s)的关系_子曰小玖的博客-CSDN博客_速率和频率的关系 时钟频率(HZ)与数据传输速率(bit/s)两者是相同的概念.举例:IIC传输位速率 ...
- AWS ssm 连接实例
aws ssm连接:aws ssm start-session \ --profile xxRole \ --region cn-northwest-1 \ --target i-08d6874428 ...
- WEB攻击与防御技术 pikachu——XSS攻击加CSRF
一.反射性xss(get) 登录pikachu选择xss模块,第一题,写了一下,发现输入长度不够,很简单,在前端改一下长度就可以使用了,这题就不做过多解释 或者直接在URL中进行写入,也是肥肠滴方便 ...
- Write down for Segments, Extents, and Blocks
Segments, Extents, and Blocks(段.区.块) • Segments exist in a tablespace. • Segments are collections of ...
- #科技 #资讯 #生活 RTX 4080显卡在欧跌破建议零售价, 小鹏回应自研电池, Meta因泄漏超5亿用户资料被罚款 ,黑猫投诉开启2022“你我同心 反诈同行”系列活动,这就是今天的其它大新闻
今天是2022年11月29日 十一月初六 现在是下午15:29 下面是今天的其他大新闻 #NEWS 1 #RTX 4080在欧跌破建议零售价 ( IT 之家 )据 PCGamesHardware 报道 ...
- verilog 硬件描述语言
第一章 绪论 verilog--数字电路设计技术--ASIC/SOC芯片设计--协议pcie SATA USB--系统知识(个人计算机,芯片组,网络连接,嵌入式系统,硬件和软件的互操作) 第二章 寄存 ...