最新要闻
- 喝的二五八万是什么意思_二五八万是什么意思
- 性能达SteamDeck两倍!华硕ROG Ally掌机先行开箱来了
- 奇葩!插队发飙者称是换队 网友吐槽发飙发泼有理:景区称仍算插队
- 天天热议:手机就能跑!开源AI机器人MLC LLM发布:无需联网
- 喜欢玩手机 那就活该单身
- 沃尔沃首款全电动汽车现已准备好接触其首批英国客户
- 降价伤人伤己?特斯拉国内外突然涨价背后:实为去库存|每日短讯
- ChatGPT导致信息泄露后:三星将开发内部AI工具
- 女子淄博吃烧烤排不上队被投喂饱 山东太热情:人民日报点赞
- 哈弗的新款Boxy SUV由前路虎设计师设计|世界球精选
- 韩国大学生吃掉天价香蕉艺术品 称是行为艺术!原作者回应了 每日速读
- 焦点快报!最高热效率达44%:五菱柳机自研高热效发动机点火成功
- 私拆承重墙高楼已加固 居民称胆真大:多层裂纹被掩盖 还敢住吗
- 坏账损失核算方法有_坏账损失核算方法 世界即时看
- 卖不动很无奈?NVIDIA对RTX 4090官降:今年第三次了
- 华为重申保持创新:1年1615亿研发费下14nm以上EDA国产化 5G必要专利全球第一_全球观热点
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
C# 常量 结构体 委托 热门看点
常量
const double PI = 3.1415926;
常量名命名一般使用大写字母
枚举类型
开发一个游戏,游戏角色有法师(Mage)、射手(Archer)、刺客(Assassin)、坦克(Tank)、铺助(Support)、战士(Warrior),等不同类型。
(相关资料图)
❓如何存储游戏角色
- 使用
int
类型 :创建一套规则,提前为各个类型角色绑定一个数字标识 - 使用枚举类型
什么是枚举类型?
枚举类型是一种特殊的值类型,可以在枚举类型中定义一组命名的数值常量。
如何声明枚举类型?
enum
{value1,value2,value3,...valuen}
默认情况下,
- 每个枚举成员对应的数值都是
int
类型的 - 按照枚举成员的生命顺序,自动按照0、1、2 ······ 进行常量赋值。
可以指定其他的整数类型代替默认类型,也可以显示指定每一位枚举成员的对应值:
public enum BorderSide : byte { Left = 1, Right, Top = 10, Bottom }
上面的开发场景利用枚举类型就可以这样来完成:
enum RoleType { Mage, Archer, Assassin, Tank, Support, Warrior }static void Main(string[] args){ RoleType Top = RoleType.Tank; Top = RoleType.Warrior;}
枚举类型的实例可以与它对应的整数值相互显式转换
RoleType Top = RoleType.Tank;int i=(int)Top;// 3
也可以显式将一个枚举类型转换为另一个
由于枚举类型可以和它对应的整数类型相互转换,因此枚举的真实值可能超出枚举类型成员的数值范围,在使用过程中需要考虑类型安全问题
结构体
我们日常使用的变量,一般都是某一个单一的信息,比如一个学生的信息:
agenamegradestudylD
❓对于一个学生信息的话,我们怎么对这些信息进行一个整合呢?
- 结构体
什么是结构体?
- 结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。
struct
关键字用于创建结构体。结构体的作用就是把某一类的变量进行整合,组成一个新的数据类型,相当于一个新的信息。
如何声明结构体?
struct
{访问权限 type typename访问权限 ype typename}
关于学生信息,就可以这样来存储:
struct Studentinfo{ public int age; public string name; public int grade; public int studylD;}static void Main(string[] args){ Studentinfo xiaoming = new Studentinfo(); xiaoming.age = 10; xiaoming.grade = 1; xiaoming.name = "小明"; xiaoming.studylD = 107963212; Console.ReadKey();}
结构体的构造语义如下:
结构体隐式包含一个无法重写的无参数构造器。此构造函数不允许删除和重定义,并且这个无参数的构造函数会一直存在,并不会因为定义了其他带参数的构造函数就消失,这一点和类不同。
- 构造器的作用是初始化对象,构造器也就是构造函数,通俗的讲就是你在实例化结构体也就是创建结构体对象时是
new Studentinfo()
还是new Studentinfo(10,1,"小明",107963212)
- 构造函数(C# 编程指南)
定义结构体的构造器时,必须显式为每一个字段赋值。
结构体构造函数(简单概述)
结构类型都有一个预定义的,没有参数的构造函数,这点与类是一样的。
看这个场景:
struct A{ static A() { Console.WriteLine("I am A."); } public void Fun() { }}static void Main(string[] args){ A a = new A(); a.Fun(); //结构的实例成员被引用 Console.ReadKey();}
输出结果为:I am A.
当你把a.Fun();
注释掉以后再次运行程序你会发现程序不会输出任何东西。
❓那么结构体的静态构造函数何时触发呢
答案是:结构体的实例成员被引用,结构体的静态成员被引用,结构体显式声明的构造函数被调用。
就上上面说的:结构体隐式包含一个无法重写的无参数构造器。此构造函数不允许删除和重定义,并且这个无参数的构造函数会一直存在,并不会因为定义了其他带参数的构造函数就消失,这一点和类不同。
我们拿类来做比较:
struct Name{ public string firstName; public string lastName; public string FullName() { return firstName + lastName; } //Name() //{ // Console.WriteLine("无参构造函数"); //}}class _Name{ public string firstName; public string lastName; public string FullName() { return firstName + lastName; } public _Name() { Console.WriteLine("无参构造函数"); }}static void Main(string[] args){ Name name = new Name(); name.firstName = "三"; name.lastName = "张"; Console.WriteLine(name.FullName()); _Name name1 = new _Name(); Console.ReadKey();}
结构体Name
中的Name()
构造函数在取消注释后编译器会报错,但是当你将Name()
改成带参的构造函数后编译器就不会提示错误了。这个时候,按照类的思路来讲,我们在创建结构体Name
的对象时应该要完成结构体带参构造的所有字段的初始化,否则就会报错。也就是说我们在创建Name
结构体对象时应该这样写:
Name name = new Name("三","张");
但是我们发现,我们写Name name = new Name();
也是没问题的,之所以为问题就是因为结构体隐式包含一个无法重写的无参数构造器。
我们换到类里面,将无参的构造函数改为带参数的,此时_Name name1 = new _Name();
就会报错。
此外,我们还可以发现,类的无参构造函数在初始化对象的时候就会调用,而结构体的静态默认无参构造函数则不会,只有在上述三种情况中才会被调用。
[C# 结构体](https://www.cnblogs.com/arxive/p/5799245.html)
实例构造函数(C# 编程指南)
C# 结构体(Struct)
结构体函数
struct Name{ public string firstName; public string lastName; public string FullName() { return firstName + lastName; }}static void Main(string[] args){ Name name = new Name(); name.firstName = "三"; name.lastName = "张"; Console.WriteLine(name.FullName()); Console.ReadKey();}
小练习
定义一个
Vector3
的结构体(这个结构体可以用来表示坐标,可以表示向量),在里面定义一个Distance
方法,用来取得一个向量的长度的。冷知识:向量长度 可以百度 一个向量的长度等于他和他自己的内积的平方根
struct Vector3{ public double x; public double y; public double z; public double Distance() { return Math.Sqrt(z * z + x * x + y * y); }}static void Main(string[] args){ Vector3 v1 = new Vector3(); v1.x = 4; v1.y = 5; v1.z = 6; Console.WriteLine(v1.Distance()); Console.ReadKey();}
委托(简单概述)
委托delegate
是一种存储函数引用的类型。
委托的定义指定了一个返回类型和一个参数列表。
定义了委托之后,就可以声明该委托类型的变量,接着就可以把一个返回类型跟参数列表跟委托一样的函数赋值给这个变量。
简单来讲,委托delegate
是一种存储数引用的类型。委托的定义指定了一个返回类型和一个参数列表定义了委托之后,就可以声明该委托类型的变量,接着就可以把一个返回类型跟参数列表跟委托一样的丽数赋值给这个变量。
static double Multiply(double param1, double param2) { return param1 * param2;}static double Divide(double param1, double param2){ return param1 / param2;}delegate double MyDelegate(double param1, double param2);static void Main(string[] args){ MyDelegate delegate1; delegate1 = Multiply; Console.WriteLine(delegate1(2,4)); // 8 delegate1 = Divide; Console.WriteLine(delegate1(4,2)); // 2 Console.ReadKey();}
可以理解为定义声明一种特殊的函数,,只有个声明,没有具体的函数体内容,函数的类型是delegate
,需要用同参数类型、数量以及同返回值的函数赋值给委托变量。
internal class Program{ delegate void OnDieDelegate(); static void PLay(OnDieDelegate onDie) { Console.WriteLine("做任务"); Console.WriteLine("玩家正在战斗"); Console.WriteLine("死"); if(onDie != null) { onDie(); } } static void ShowDieUI() { Console.WriteLine("显示游戏死亡后的UI"); Console.WriteLine("返回首页UI"); } static void Main(string[] args) { PLay(ShowDieUI); PLay(null); Console.ReadKey(); }}
关键词:
C# 常量 结构体 委托 热门看点
喝的二五八万是什么意思_二五八万是什么意思
性能达SteamDeck两倍!华硕ROG Ally掌机先行开箱来了
奇葩!插队发飙者称是换队 网友吐槽发飙发泼有理:景区称仍算插队
天天热议:手机就能跑!开源AI机器人MLC LLM发布:无需联网
喜欢玩手机 那就活该单身
沃尔沃首款全电动汽车现已准备好接触其首批英国客户
降价伤人伤己?特斯拉国内外突然涨价背后:实为去库存|每日短讯
ChatGPT导致信息泄露后:三星将开发内部AI工具
女子淄博吃烧烤排不上队被投喂饱 山东太热情:人民日报点赞
11.迷宫问题(BFS 储存路径)
哈弗的新款Boxy SUV由前路虎设计师设计|世界球精选
韩国大学生吃掉天价香蕉艺术品 称是行为艺术!原作者回应了 每日速读
焦点快报!最高热效率达44%:五菱柳机自研高热效发动机点火成功
私拆承重墙高楼已加固 居民称胆真大:多层裂纹被掩盖 还敢住吗
坏账损失核算方法有_坏账损失核算方法 世界即时看
卖不动很无奈?NVIDIA对RTX 4090官降:今年第三次了
华为重申保持创新:1年1615亿研发费下14nm以上EDA国产化 5G必要专利全球第一_全球观热点
appuploader iOS 应用自动发布
苹果酸酶_关于苹果酸酶的简介
Windows 12这般模样?概念设计出炉:任务栏/开始菜单无比舒服 天天头条
21 文件六大基本操作|焦点速读
Tomcat7安装基于jdk 1.7环境
全球资讯:STM32_5(中断)
ASML吓坏?俄罗斯放狠话加快自研光刻机 能产7nm芯片:合作伙伴敲定
画面瘆人!印度机场从一女子包中搜出22种蛇 环球百事通
《最终幻想16》召唤兽概念图曝光!极具设计感 世界热闻
显存容量很重要!RTX 3060 8GB魔改12GB显存后:性能提升22%-全球球精选
全球播报:长城魏玛奇朵dht-phev特调版外观设计精致,线条流畅
业主拆承重墙 裂缝已蔓延到21层行为被称谋杀:律师回应公共安全罪可刑拘-当前短讯
被指插队发飙当事人回应原委上热搜 是排队平移非插队:自己被冤枉 网友看醉
世界最新:物业公司在小区建简易摊位 合同到期 业主能不能收回?
哈希表与布隆过滤器
全球观热点:好客山东名不虚传!淄博0.85米志愿者喝着奶帮看行李
爱买不买?三星等国外大厂减产倒逼SSD等存储涨价 国产厂商不怕|焦点资讯
当前资讯!素质堪忧?垃圾站现1000万日元 日本12人前去冒领:最终结果意外
孔雀为躲游客拔毛被滑车碾压:为珍贵白孔雀!景区回应_全球速看
【世界报资讯】五一“赛程近半” 文娱及旅游等消费数据有多强劲?
gcc/g++编译 全球最新
全球百事通!家电行业周报:三大白电4月空冰洗排产数据较好
每日简讯:提前十一天!《塞尔达传说:王国之泪》意外偷跑:模拟器可玩
终于像是“次世代”了:微软为Xbox开发新版UI
高质量发展调研行丨产业集群提速 项目建设正酣-天天快资讯
五一返程注意!暴雨大暴雨要来了:华东、华中将现今年来最强降雨_环球快讯
世界微资讯!特斯拉差点破产:马斯克入选瑞典“失败博物馆”
曝小鹏“自动驾驶”避让大车险冲出高架 客服回应:会反馈核实|世界播资讯
时讯:失业潮或在路上!IBM计划用AI取代7800个岗位
环球观焦点:5月24开播!美版《西游ABC》来了:杨紫琼演观音 吴彦祖演美猴王
天天热头条丨傅欢俱乐部赛事达成200次出场,中超175场,中甲25场
频频把辅助驾驶当成自动驾驶:一嘴硬的理想车主撞了-全球热门
云南母鸡山服务区冲厕出现红水吓跑小孩:工作人员释疑 长见识 全球即时
对标苹果!微软自研Arm芯片在路上了|天天播报
靠增程抢的充电桩 凭什么让给纯电? 当前速讯
环球观察:学系统集成项目管理工程师(中项)系列16a_风险管理(上)
今亮点!AI组建社交鬼城 所有人类禁止入内:上万AI自主聊天!
加快IPv4退网:我国IPv6从能用到好用了_当前速看
靠增程抢的充电桩 凭什么让给纯电?
苹果版“余额宝”开局迅猛!Apple Card四天吸金69亿元_天天报资讯
全球球精选!刘亦菲国籍能改回来吗 刘亦菲国籍
【经验分享】使用Windows自带Xbox显示游戏帧率
美国4月ISM制造业环比上升但连续六个月萎缩,Markit制造业重回扩张
23年4月新能源汽车品牌销量排名来了 埃安、理想杀疯了|焦点资讯
超越《长空之王》!电影《人生路不熟》成劳动节单日票房冠军
【全球新视野】特斯拉又“失控” 车头撞没:这次不是单踏板的祸 别克变道所致网友称可怜
国内票房破4亿!《长空之王》国外口碑解禁:老外狂赞 歼20等精彩
孙殿义_环球新资讯
热资讯!孙楼村
算法3:质数的个数-全球观察
【世界报资讯】扛起农业大市担当 打造新时代鱼米之乡实践样板
视点!小米汽车可期!网友在厦门4S店偶遇卢伟冰
男子路边尝大爷樱桃没买被收2元直呼憋气 主动让尝:网友吐槽坑
全球聚焦:找段错误找了一个小时,纪念一下
环球今热点:2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]
20 文件系统的格式化操作_世界聚看点
天天热点评!详解 HTTPS 概念
当前快播:荷兰一男子疯狂捐精成550个孩子的爸爸:被判禁止捐精 再捐每次罚款76万
环球实时:吉利副总裁:不管极氪蔚来 中国品牌总要有一个打BBA的
当前简讯:男子订民宿被毁约 房东:住满了 没办法
定制长沙独家游玩攻略,大学生手绘旅游地图 世界今日讯
Mac M芯片使用PD安装centos7无页面安装
环球观点:自研“北斗高精”!百度地图宣布攻破“宇宙最难”8D重庆隧道导航
天天动态:米粉直呼Redmi Note 12 Turbo续航太顶:亮屏4小时耗电才33% 用的还是流量
焦点速递!斗图冯骥才看了答案。
天天微速讯:C# 基础编程题集锦
最近公共祖先 倍增算法
《长空之王》无悬念领跑!五一档新片总票房破10亿元:你贡献多少?
赢麻了!DC:黑人版《超人》有望成为现实
金帝纯黑68%巧克力薄片2盒19.9元:浓醇美味
全球今亮点!山东齐鲁工业大学官网招生计划 山东齐鲁工业大学官网
【天天快播报】新系统基于鸿蒙!华为海外发布4G新机Nova 11i:搭载骁龙680、2200元
时讯:高速上2车追尾洒落大量现金 场面壮观:网友直呼想停车去捡 目击者称是冥币
气温骤降超10℃!新一轮冷空气来袭:局地暴雨大雪 环球快看
全球球精选!Win11虚拟桌面切换动画终于回归!可惜依然生硬
天天视讯!“五一”去怒江,穿越东方大峡谷
最低分辨率仅648P!《星战绝地:幸存者》PS5版优化同样翻车_环球微动态
关注:大学选课是啥_大学选课是什么意思
国内普工月薪1万块 父母看病报销!马斯克称特斯拉每个人都是工人 经济严重衰退将来临|全球球精选
今年五一国人太疯狂!珠穆朗玛峰凌晨两点还在堵 手冻肿还有人插队 观天下
新消息丨lua基础语法篇一
5年级上册语文书课文_5年级上册语文书