【设计模式】C#基础知识积累

    在设计模式第二遍敲例子的时候,用到的知识也是C#中的,所以通过实践,又重新理解了一遍。一边走,一边捡起了很多的散碎银两。

一、Main 方法

     Main方法是C#控制台应用程序或窗口应用程序的入口点,应用程序启动的时候,C#Main方法,是第一个调用的方法。在设计模式中最常用的就是Static Void Main( String  [ ]  args) 。C#中的main方法首字母必须是大写,如果首字母是小写,就会产生编译错误,编译失败。

static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放。
void 表示方法没有返回值,就是方法没有renturn 关键字。
main 是方法名,当然这个方法是特殊的方法,是Main()就是说是主函数,就是整个程序的入口,程序被编译后从这里开始执行,这也是main方法要是static的原因,因为在啥都没做的时候这个函数就得存在。
string[] args 表示命令行参数是字符串数组,就是说,你在命令行里输入的参数可以使多个字符串(在某种意义上意味着什么都可以是命令行参数)。

运行时会弹出命令窗口,你可以在那里输入一些参数,string[] args 指的就是你在命令窗口输入的参数。args是用来处理命令行参数的。命令行参数,就是你运行这个程序的时候给它传的参数。它是可选项,不是必须的。

Main()方法有以下几条准则:

1、Main()方法必须封装在类或结构里来提供可执行程序的入口点,C#采用了完全的额面向对象的编程模式,但是C#中不可以有像C++那样的全局函数。

2、Main()方法必须有静态方法(static),这允许C#不必创建实例对象即可运行程序。

3.Main()方法的保护级别没有特殊要求,Public、Protec、Private等都可以,但是一遍都指定其为Public。

4.main()方法名的第一个字母要大写,否则将不具有入口点的语义(C#是大小写敏感的语言)

5.Main() 方法的参数只用两种形式,无参数和String()数组表示的命令参数,一个C#程序只能有一个Main()函数入口点,其他像是的参数不具有入口点语义,C#不推荐通过其他参数形式重载Main()函数,这会引起编译警告。

6.Main()函数返回值只能是void(无类型)或(整数类型),定义中Void代表是没有返回值。

二、Using关键字

Using System;

Using System.Collections.Generic;

Using System.text .

     在C#程序中我们每打开一个窗体或者控制台程序,都会看里面写好了许多这些代码。这时候使用的作用,就是引用命名空间,Using作为引入命名空间指令的用法规则是:Using Namespace。最常见的代码就是在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本的最常用的操作。例如:Using system;这样我们在程序中就可以直接使用命名空间中的类型,而不必指定详细的类型名称。Using 指令可以访问嵌套命名空间。

三、命名空间

   前边我们已经提到了,C#中有命名空间,Java中有包,命名空间就像一个文件系统中用一个文件夹容纳多个文件一样,可以看做某些类的以一个容器,可以把相关的类,放入一个命名的空间,从而把相关的类组织起来,并且可以避免命名冲突。我觉得就像一个装类的箱子,知道某个箱子在去某个类,就会简单了。这里推荐前辈们的博客:命名空间。

四、C#中的Console类所有的方法和属性的用法。

   这是我们最常用,也最熟悉的。

Console.Write 表示向控制台之间写入字符串,不进行换行,可继续接着前面的字符写入。

Console.WriteLine表示向控制台写入字符串后换行。

Console.Read表示从控制台读取字符串后进行换行。

Console.ReadKey获取用户按下的下一个字符或者功能键。按下的键显示在控制台窗口中。

五、Set和Get

    这也是我的老朋友了,C#中有两个函数,一个是赋值函数(Get),一个是取值函数(Set),这从它生成的中间语言代码可以清晰的看到。C#不提倡将域的保护级别设置为Public,而使用用户在类外任意操作,那样太不安全了。对所有在类外可见的域,C# 推荐采用属性来表达。

Private string name;

Public string Name

{

get    { return name;}      //这里取出(读取)私有属性namer的值。     get// 获得

set    { name=Value;}  // 这里是给私有属性name  赋值。              Set//获得。

}

 c#在定义类时,通常要把类中声明的对象封装起来,使得外界不能访问这个属性。上述代码中如果去掉set部分,则外界只能读取name的值,如果去掉get部分,则只能给name赋值。这样就可以控制外界对私有属性name的访问权限了,这种写法是C#的一个特性。

 属性与普通变量不同就在于, 普通变量就是放在屋子里的东西, 是什么样明明白白. 而属性则是在屋子的门口放了个守门人, 你拿东西放东西要经过他.

这个守门人就是属性访问器, 拿东西就是 get, 放东西就是 set. 怎么拿怎么放是它说了算, 虽然你觉得好像就是直接拿直接放差不多. 

   Get Set 就是对外的接口 ,一般在实例中访问成员数据需要这个成员数据的访问方式为Public,现在C#很高级了,Get 就是获取,Set 就是设置,但是它提供了跟好的收缩性,对Get 和Set 可以单独设置访问权限 比如你对某个成员数据只能读取或者只写,或者只有派生类可以访问等。 相对以前来说,没有属性访问器,需要通过函数来调用私有成员数据,属性提供了高效的访问模式和简单的书写。
补充:
   get 和 set 会在相应的时候自动调用 ,主要是为了隐藏程序内的数据结构时用 ;get是获取该属性的值, set设置该属性的值。 在用set时有一个特殊的变量value ,就是设置属性时的值,value 隐式参数,用于设置访问器以及添加或移除事件处理程序。对类的属性进行 设置 :比如用类名.属性=“”赋值 set作用 ,变量=类名.属性  

    还有,属性提供了只读(Get),只写(Set),读写(Get和Set)三种接口操作。对域的这三种操作,我们必须在同一个属性名下声明,而不可以将他们分离。

小结:

    实践出真知,重复就是力量,当时看C#视频的时候是晕晕乎乎,但是现在再回去看那些笔记的时候,突然感觉没有没有那么困难了,就好像以前说VB是可视化的编程,就是知道能够看到界面,具体的说不清。但是直到接触C#的控制台之后,通过对比,我才觉得真正理解了什么是可视化。经过实践,对于他们的使用也是越来越有感觉了。不管看懂看不懂,接着往下学,学着学着,有时候突然就懂了,但是关键是坚持接着不断的学习。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值