C#学习遇到的问题

1.C#的几种注释方法

// 单行注释

/**/ 块注释

///说明注释,注释以后可以自动生成说明文档档

#region  折叠注释,可以将代码折叠 
#endregion
只是#region 所在行后面的文字是注释文字,而其它的#region和#endregion之内的行代码是有效的,仅仅起折叠作用

2.vs(visual studio 2019)如何恢复默认设置

流程如下:工具 -> 导入和导出设置 -> 重置所有设置

img
img

然后就可以重置vs2019 的布局了!

3.C#中using关键字的作用及用法

using的用途和使用技巧:
  1. 引用命名空间
> 引用命名空间,这样可以在程序中引用命名空间的类型而不必指定详细的命名空间.
> 
>  a) 比如在程序中常用的using System.Text;
> 
>  b) 引用命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作则编译器将不会加载using引入命名空间所在空间的程序集.因此,在源文件开头,引入多个命名空间,并非加载多个程序集,不会造成’过度引用’的弊端
  1. 为命名空间或类型创建别名
> 为命名空间或类型创建别名
> 
>       创建别名的原因在于同一个文件中引入不同的命名空间中包括了相同名称的类型。为了避免出现名称冲突,可以通过设定别名来解决.
> 
>         例:using SGPoint = ShapMap.Geometries.Point
> 
>         Using SGPoint = System.Drawing.Point
> 
>       其实也可以通过类型全名称来加以区分,但是最佳解决方案还是使用using
  1. 使用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上有介绍,简单地说: 生成解决方案:已经是最新的就跳过。 重新生成解决方案:先把已经生成好的全部删掉,然后再生成一遍。


6.VS2019下C#解决方案生成的文件都是什么作用?(bin文件、obj文件、properties文件、.cs文件、 .csproj文件、.config文件等)

文件/文件夹 作用 介绍
Bin目录 用来存放编译的结果 bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。
obj 用于存放编译过程中生成的中间临时文件 obj是object的缩写,其中都有debug和release两个子目录,分别对应调试版本和发行版本,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置.
Properties文件夹 定义程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。
.config文件 Web.config文件向它们所在的目录和所有子目录提供配置信息
.cs文件 类模块代码文件 源代码都写在这里,主要就看这里的代码。
.csproj文件 C#项目文件 创建应用程序所需的引用、数据连接、文件夹和文件的信息。用VS打开这个文件就可以直接打开这个项目,自动生成,不需要看。
.sln 在开发环境中使用的解决方案文件 它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合
.aspx .aspx 是网页文件,HTML代码写在这里面 Web窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。VS将这两个组成部分分别存储在一个单独的文件中,视觉元素在.aspx文件中创建。
.aspx.cs Web窗体页的编程逻辑位于一个单独的类文件中 该文件称作代码隐藏类文件(.aspx.cs)
.aspx.resx/.restx 资源文件 资源是在逻辑上有应用程序部署的任何非可执行数据,通过在资源文件中存储数据,无需重新编译整个应用程序即可更改数据。
.pdb PDB (程序数据库) 文件保持着调试和项目状态信息,从而可以对程序的调试配置进行增量链接。
.suo 解决方案用户选项 记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含您所做的自定义设置。

后记:

文章持续更新,如果喜欢,请拿起你们可爱的小手,给我点个赞吧!

点赞是一种积极的生活态度,赞一个吧!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358