1.C#的几种注释方法
// 单行注释
/**/ 块注释
///说明注释,注释以后可以自动生成说明文档档
#region 折叠注释,可以将代码折叠
#endregion
只是#region 所在行后面的文字是注释文字,而其它的#region和#endregion之内的行代码是有效的,仅仅起折叠作用
2.vs(visual studio 2019)如何恢复默认设置
流程如下:工具 -> 导入和导出设置 -> 重置所有设置
![8bb04f09cab1be494cccc5879b99ea11.png](https://i-blog.csdnimg.cn/blog_migrate/071f8b657c5ecf1513b1e5422434c9d1.png)
![5cf1e5de4d09515f0b90e85715425c2d.png](https://i-blog.csdnimg.cn/blog_migrate/904337436f6e01e557b10abf10726741.png)
然后就可以重置vs2019 的布局了!
3.C#中using关键字的作用及用法
using的用途和使用技巧:
- 引用命名空间
引用命名空间,这样可以在程序中引用命名空间的类型而不必指定详细的命名空间.
a) 比如在程序中常用的using System.Text;
b) 引用命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作则编译器将不会加载using引入命名空间所在空间的程序集.因此,在源文件开头,引入多个命名空间,并非加载多个程序集,不会造成’过度引用’的弊端
- 为命名空间或类型创建别名
为命名空间或类型创建别名
创建别名的原因在于同一个文件中引入不同的命名空间中包括了相同名称的类型。为了避免出现名称冲突,可以通过设定别名来解决.
例:using SGPoint = ShapMap.Geometries.Point
Using SGPoint = System.Drawing.Point
其实也可以通过类型全名称来加以区分,但是最佳解决方案还是使用using
- 使用using语句
using语句允许程序员指定使用资源的对象应当何时释放资源.using语句中使用的对象必须实现IDisposable接口.此接口提供了Dispose方法,该方法将释放此对象的资源
使用规则:
a) using语句只能用于实现了IDisposable接口的类型,禁止为不支持IDisposable接口类型使用using语句,否则会出现编译错误
b) using语句适用于清理单个非托管资源的情况,而多个非托管对象的清理最好以try-finaly来实现,因为嵌套using语句可能存在隐藏的Bug.内层using块引发异常时,将不能释放外层using块的对象资源
using实质:
在程序编译阶段,编译器会自动将using语句生成try-finally语句,并在finally块中调用对象的Dispose方法,来清理资源.所以,using语句等效于try-finally语句
4.C#关键字之overload、override、new详解。
重载、重写、覆写,分别指的是overload、override、new。
一、override重写:
是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。提供从基类继承的成员的新实现,而通过override声明重写的方法称为基方法。
注意事项:
1.重写基方法必须具有与override方法相同的签名。 2.override声明不能更改virtual方法的可访问性,且override方法与virtual方法必须具有相同级别访问修饰符。 3.不能用new、static、virtual修饰符修改override方法。 4.重写属性声明必须指定与继承的属性完全相同的访问修饰符、类型和名称。 5.重写的属性必须是virtual、abstract或override。 6.不能重写非虚方法或静态方法。 7.父类中有abstract,那么子类同名方法必定有override,若父类中有 virtual方法,子类同名方法不一定是override,可能是overload。 8.override必定有父子类关系。
二、overload重载:
在同一个类中方法名相同、参数或返回值不同的多个方法即为方法重载。
注意事项:
1.出现在同一个类中。 2.参数列表不同或返回类型和参数列表都不同,只有返回类型不同不能重载。(参数列表包括参数个数和参数类型)
三、overwrite覆写:
用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。
四、 C#关键字之重写,重载,覆盖的实例:
//代码实例演示
class Parent
{
public void F()
{
Console.WriteLine("Parent.F()");
}
public virtual void G() //抽象方法
{
Console.WriteLine("Parent.G()");
}
public int Add(int x, int y)
{
return x + y;
}
public float Add(float x, float y) //重载(overload)Add函数
{
return x + y;
}
}
class ChildOne:Parent //子类一继承父类
{
new public void F() //覆写(overwrite)父类函数
{
Console.WriteLine("ChildOne.F()");
}
public override void G() //重写(override)父类虚函数,主要实现多态
{
Console.WriteLine("ChildOne.G()");
}
}
class ChildTwo:Parent //子类二继承父类
{
new public void F()
{
Console.WriteLine("ChildTwo.F()");
}
public override void G()
{
Console.WriteLine("ChildTwo.G()");
}
}
class Program
{
static void Main(string[] args)
{
Parent childOne = new ChildOne();
Parent childTwo = new ChildTwo();
//调用Parent.F()
childOne.F();
childTwo.F();
//实现多态
childOne.G();
childTwo.G();
Parent load = new Parent();
//重载(overload)
Console.WriteLine(load.Add(1, 2));
Console.WriteLine(load.Add(3.4f, 4.5f));
Console.Read();
}
}
5.c#之vs2019的重新生成解决方案”和"生成解决方案"的学习
解决方案是什么:
解决方案是来若干个有联系的项目的组合。你生成解决方案,就会把所有自的项目都百给bulid了,省的你一个一个去生成。
比如解决方案里有3个项目,a,b,c,a项目用到度b项目,b项目用到c项目,它会按顺序问给你生成c->b-a,然后把c,b的答dll都放到a的bin目录下。
重新生成解决方案:
重新生成解决方案顾名思义就是重新编译每个文件,这样速度要满些,但可靠度高一些。“重新生成”是对所有的文件都重新生成你在解决方案上右键,选择重新生成解决方案的话。VS会自动帮你都生成一遍的。也就是Bin目录里的东西。
生成解决方案:
而生成解决方案则在上次编译的基础上编译那些修改过了的文件,而没有修改的文件不编译,类似于数据库里的增量备份。“生成”的时候,只对你改动过的文件重新生成,没有改动过的文件不会重新生成;
清理解决方案:
最后提一下“清理解决方案”,这是在“重新生成解决方案”和“生成解决方案”下面的一个选项,选择“清理解决方案”将删除所有中间文件和输出文件,只留下项目文件和组件文件,以后可以从这些文件生成中间文件和输出文件的新实例。其实“清理解决方案”这个过程是在“重新生成解决方案”之前要执行的一个步骤,至此,这三者分别的作用的概念就了解完成了。
总结:
这个MSDN上有介绍,简单地说: 生成解决方案:已经是最新的就跳过。 重新生成解决方案:先把已经生成好的全部删掉,然后再生成一遍。
后记:
文章持续更新,如果喜欢,请拿起你们可爱的小手,给我点个赞吧!
点赞是一种积极的生活态度,赞一个吧!