C# 里所有的注意事项

C# 中的 Base 关键字 base 关键字在 C# 中是一个非常重要的概念,它使得派生类能够灵活地访问和扩展基类的成员。通过合理使用 base,可以实现多态、组合基类的构造函数等功能,提高代码的复用性和可维护性。希望本文能帮助你更好地理解和掌握 base 的用法,为你的 C# 编程实践提供有力支持。 阅读详情

1. 类成员的访问权限:
A. Public:允许外界访问。
B. Private 不允许外界访问,也不允许派生类访问。
C. Protected:不允许外界访问,但允许派生类访问。
D. Internal:允许同一个命名空间中的类访问。
2. 在while括号后面不要加分号,因为加分号后,就表示while语句中的循环体代表空语句。不过有时可以将while语句的循环体中的语句放在while后面的括号中去,这时就可在while括号后面加上一个分号。如例4.8中的while语句可以表示如下:
//…
while(s+=I++,I<=10);
Console.WriteLine(“1+2+3+…+10={0}”,s);
程序执行结果完全相同,但一般不提倡这种用法,因为它损害了程序的可读性。
3. 如果有多重循环,不是跳出所有的循环,而是执行其后的语句。
4. 如果程序中的break语句不是包含在while,do…while,for 和foreach循环语句及swich选择语句中,则在编译程序时会出错。
5. 在C#中,在一个方法定义语句中,不能再包含加一个方法的定义语句,即方法不能嵌套定义,否则就会出错。
6. 方法的返回值也称方法值,方法返回的不是方法本身,而是一个值。
7. 在把引用型实参的值传递给形参之前,必须先对其值,这一点是引用型参数与输出型参数的不同之处。
8. 在C#语言中,有引用类型参数与输出型参数之分,但在。NET的其他语言(如VB。NET、C++托管扩展)中,则没有这种分类,而是把它们统一视作引用型参数。
9. NEW运算符表示创建某种类型的实例,但并不表示是进行动态内存分配。比如:使用NEW运算符创建类型实例时,除了该实例所属的变量外,并不需要额外分配内存空间,因而也就不会进行动态内存分配。这一点是C#与C++的不同之处。
10. 造函数不能被继承,因而,任何一个类都只能使用在该类中定义的构造函数,如果一个类中没有专门定义构造函数,C#会为类提供一个默认的构造函数。
11. 在C++中有一个this指针,它是每个对象中隐藏的指针。当一个对象生成后,该对象的this指针就指向内存中保存该对象数据的
12. 只读字段只能在字段的定义语句中为其赋值,或者在它所属类的构造函数中为其赋值或修改值,而在其他任何地方都是只读的,不能对其值进行修改。
13. 在对类的实例字段执行初始化时,不能引用刚被创建的实例。因此,在执行字段的初始化时,不能用简单的变量名称来引用类的实例成员,也不能引用this关键字,如下面的代码所示:
using System;
class Test
{
protected int x=10;
protected int y=x*2;
public static void Main()
{
Test test=new Test();
Console.writeLine(“{0},{1}”,test.x,test.y);
}
}
编译该程序,系统提示出错,出错语句即是protested int y=x*2,出错原因是:字段初始值设定项无法引用非静态字段、方法或属性test.x.
14. 尽管访问索引指示器元素的方法与访问数组元素的方法相似,但是索引指示器元素不是作为变量分类的,因而不可能指索引指示器元素作为引用型或输出型参数传递。
15. 在。NET平台上,在类中定义一个类型为T、形参为P的索引指示器时,如果再在该类中定义下面两种形式的方法:
T get_Item(p)
Void set_Item(P,T value)
此时,程序出错。
16. 当对一个静态字段执行E。M这样的成员访问格式的访问引用时,E必须表示是一种类型,否则程序会出错。
C#中的十六进制转字符实现指南 类在 C# 中是处理基本数据类型与其字节表示形式之间转换的一个重要工具。它可以将数据类型如整数、浮点数、布尔值等转换为字节数组,也可以将字节数组转换为对应的数值类型。使用类的基本步骤通常包括:1. 确定要转换的数据类型。2. 调用的方法将数据类型转换为字节数组,或反之。例如,要将一个整数转换为字节数组,可以使用方法。相反,如果有一个字节数组且想将其转换为整数,则可以使用方法。 阅读详情

相关推荐

c#初学者注意事项46条

就一个币吧! 新手看完肯定受益匪浅 这个是我初学的时候 根据老师讲的课 写下来的 绝对符合新手思维; 没有币的可以看我博客,博客上有,有币的话,我不介意你下载哟

(转贴) C#编码标准--编码习惯

看到一篇文章,里面列举了自己也有的错误,转贴之!1.避免将多个类放在一个文件里面。 2.一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。 3.一个文件最好不要超过500行的代码(不包括机器产生的代码)。 4.一个方法的代码长度最好不要超过25行。 5.避免方法中有超过5个参数的情况。使用结构来传递多个参数。 6.每行代码不要超过80个字符。 7.不...

weixin_33717117的博客 430

c#注意事项

c#入门基础要看的一些知识

对于C#的一些注意事项

功能完成,下班走人.今天不用加太晚,嘿嘿,周四了啊,还行,这周过得挺充实的, 学习还是复习?都一样啦,反正每次看都有新的理解 今天写点知识点和个人理解吧 一::.我如何理解事件与委托的概念? 其实事件就是一个狭义的委托,也就是事件是一个用于事件驱动的专用委托,你可以在客户端代码中直接调用委托来激发委托指向的函数,而事件不可以,事件的触发只能由服务代码自己触发。也就是说在你的代码里委托不但可以安排谁...

weixin_43863320的博客 336

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2355

从零构建AI智能体:基于opencode框架的Agent开发全流程指南

AI智能体(AI Agent)作为人工智能领域的重要发展方向,正从概念走向工程实践。其核心原理在于赋予AI自主规划、执行和迭代的能力,使其不再局限于简单的问答,而是能够理解复杂目标、分解任务、调用工具并完成闭环。这一技术价值在于将AI从“对话伙伴”升级为“执行伙伴”,极大地拓展了自动化边界,在智能客服、数据分析、自动化运维等场景展现出巨大潜力。本文聚焦于如何利用opencode这一热门开发框架,快速构建具备实际能力的智能体。通过拆解其核心组件如技能库、规划器与运行时,并结合具体实践案例,系统阐述了从环境搭建

weixin_29055699的博客 437

C#基本语法及注意事项

一、基本语法 C#是一种面向对象的编程语言。程序设计方法面向对象,由各种相互交互的对象组成,相同种类的对象在一个类中,或者说在一个class中。 在任何C#程序中的第一条语句都是: using System; 然后 class 关键字用于声明一个类; 注释单行用//,多行用/*......*/ 除此之外,还有成员变量(类的属性或数据成员)和成员函数; 用来识别类、变量、函数或用户自定义的项目的是标识符,标识符规则: 1、必须以字母、下划线或@开头,后跟下划线、数字和@,不能是其它的空格或符号

djcxd的博客 600

Windows10 搭建 FTP 服务器

问题: 有这么一个需求,博主需要对班级同学的信息进行收集,同学的信息是一个个的文件, 正常是每个同学将自己的信息打包压缩通过 QQ 或者邮箱方式发送给博主, 博主一个个接收这些压缩包,然后进行解压,再统一放到一个文件夹下, 但是博主觉得这样子实在是太麻烦了,如果某一个同学的信息来回变动,就需要接收很多次,更改很多次, 另外如果消息过多还会产生漏掉某个同学的信息的问题。 解决方法: 如果可以使...

assiduous_me的博客 3966

C#代码常见问题总结

编写程序过程中,不加注意,会出现好多微不足道的小毛病,有些问题非常低级,尤其是在对代码规范要求不严格的公司里,这些毛病积累起来,可能会要了软件产品的小命,回顾了最经做的几个项目,总结了以下问题。19、 程序优化是一个日常性的过程,当初设计比较好的程序结构可能会有所修改,每次修改完,最终要求的功能实现了并不算完,应该再想想是不是应该封装的封装,应该调整的调整。15、 程序中定义变量,起名要有意义,不要定义名字类似“XX”、”XXXX”、“sdfs”的变量,当时想着,先实现,再改名,然而之后一般不会去改。

woshigongzihao的博客 576

stm32使用TB6600驱动器控制42BYGH型步进电机

stm32使用TB6600驱动器控制42BYGH型步进电机

qq_35653974的博客 9587

无人机航拍图像匹配——SIFT算法实践(含代码)

无人机航拍图像匹配——SIFT算法实践(含代码)

zhangzhao147的博客 6395

C#里字典的使用方法和注意事项

是高效的键值对集合,适合快速查找场景。使用时需注意键的唯一性、类型约束和线程安全,避免常见的异常(如键重复、空键 / 值错误)。合理利用等方法可提升代码健壮性。

gdx_197239956的博客 765

Bev算法在J5平台的部署

支持多种形式的Bev算法:ipmlss时序,以及基于transformer的gkt。

@bangbang的博客 846

关于在c#里加载c++ dll的一些注意事项

分享几篇文章,基本上的问题都有涉及,感谢。 http://www.cnblogs.com/wdysunflower/archive/2010/09/01/1813947.html http://blog.youkuaiyun.com/cc_net/article/details/5653229 http://www.diybl.com/course/3_program/c++/cppjs/200886/...

weixin_30549657的博客 140

【ROS】ROS2导航Nav2:简介、安装、测试效果、错误处理

在ROS2中自动导航使用Nav2来实现。Nav2 使用几个独立的模块化服务,通过 ROS 2接口(例如动作服务器或服务)与行为树 (BT) 通信。Nav2 输入包括:TF转换、一个地图源、一个行为树 (BT) XML 文件和相关的传感器数据源;Nav2 输出速度命令;Nav2 支持多种机器人,比如:四足机器人、履带机器人、轮式机器人等。

郭老二 5085

TIA protal与SCL从入门到精通(1)——SCL编程入门

SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进...

苦走一口田 7万+

C#继承(二)

上一篇讲到了关于继承的概念以及格式 这一篇就说一下关于继承的注意事项 首先C#类里可以实现多重继承,不能多继承 例如 父亲能继承祖父的东西,儿子不仅继承了父亲的东西,还继承了祖父的东西,这就是多重继承 在多继承的时候就会报错,显示一个类不能具有多个基类,这就是继承不能多继承的原因 2、C#继承可继承非Private类型的数据和方法 在祖父这里我写了三种访问修饰符,来去验证 在Main函数中...

weixin_44389803的博客 2510

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C#经验点滴

1.使用DateTime.Now.ToString()时需要注意的地方:        DateTime.Now.ToString()                        2005-2-16 19:06:54        DateTime.Now.ToString("hh:mm:ss")       07:06:54    (12小时制)        DateTime.Now.ToS

KeNtEr' Blog 898

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

c# jarray 快速提取_C#编程之C# JArray与JObject 的使用

本文主要向大家介绍了C#编程之C# JArray与JObject 的使用,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。usingNewtonsoft.Json.Linq;如何获取json里的某个属性(节点)值,对其删改,新增//2.1数组用JArray加载stringjsonText="[{‘a‘:‘aaa‘,‘b‘:‘bbb‘,‘c‘:‘ccc‘},{‘a‘:‘aa‘,‘...

weixin_39981624的博客 3034

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# 中 Task 的创建与 ContinueWith 使用注意事项

使用 Task 时必须显式调用Start()方法(除了使用Task.Run等工厂方法)在await或Wait()前确保任务已经启动错误的调用顺序会导致程序阻塞推荐使用Task.Run替代new Task()Start()的组合,可以避免此类问题。

oDanYiNiao的博客 797

C#通过反射执行C#dll所有函数

C#反射(Reflection) 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 优缺点 优点: 1、反射提高了程序的灵活性和扩展性。 2、降低耦合...

weixin_30825199的博客 803

C#中的int?:可空类型,你了解多少?

在C#编程的世界里,数据类型是个基础而重要的概念。有时候,我们可能会遇到这样的情况:一个变量可能有一个整数值,也可能没有值(即为空)。为了处理这种“可能有值,也可能为空”的情况,C#引入了可空类型(Nullable Types)

分享智能财税相关技术探索 594

基于PIC18F86K90与NCA6416BYHP的I2C GPIO扩展实战

在嵌入式系统设计中,GPIO资源不足是常见挑战,尤其当MCU需同时驱动多路继电器、光耦隔离输入及状态指示时。I2C总线凭借其仅需两根信号线即可连接多个设备的特点,成为扩展数字I/O的主流方案。通过I2C GPIO扩展器,主控MCU可将输入采集与输出驱动任务卸载至专用芯片,从而释放引脚资源并提升系统模块化程度。此类扩展方案在工业控制、监测设备及需要多路数字量处理的场景中价值显著,能够灵活应对现场需求变化。本文以PIC18F86K90与NCA6416BYHP的配合为例,深入解析寄存器配置、中断处理、多片级联及抗

weixin_30824479的博客 389
上一篇: 网站入侵基本知识
下一篇: 未将对象引用设置到对象的实例异常的原因,
happyxiaochen
博客等级 码龄21年 9粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值