C#学习总结
C#简介:
1、C#是一种最新的、面向对象的编程语言
2、C#使得程序员可以在Microsoft开发的最新的.NET平台上快速地编写Windows应用程序
3、而且Microsoft .NET提供了一系列的工具和服务应用在应用程序的开发中
4、C#语言是是建立在Microsoft的.NET Framework之上,专门为与.NET Framework一起使用而设计的。
5、.NET Framework是一个功能非常丰富的平台,可开发、部署和执行分布式应用程序。
6、C# 与.NET Framework的紧密结合使得程序开发更轻松、更高效。
C#与.NET的关系
1、C# 是一种编程语言,用于生成面向.NET环境的代码,但不是.NET的一部分。
2、.NET所支持的一些特性,C# 并不支持;而C# 支持的一些特性,.NET也可能不支持(如运算符重载)。
3、由于C# 是和.NET一起使用的,所以如果读者想更高效地利用C# 开发应用程序,掌握.NET Framework的相关知识就非常重要。在许多情况下,C# 的特定语言功能取决于.NET的功能或依赖于.NET基类。
4、Microsoft Visual Studio.NET是MicroSoft公司为适应Internet高速发展的需要而隆重推出的新的开发平台,是目前最流行的 Windows 平台应用程序开发环境,可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。
C#内置的输入输出方法
1、Console.WriteLine("Hello World"); 指定了它的行为。
WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。该语句会在屏幕上显示消息 "Hello, World!"
2、Console.ReadKey(); 是针对 VS.NET 用户的。这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。与C++的system("Pause");同效。
3、Console.Write()与Console.WriteLine()的区别是:前者输出后不换行,后者输出后自动换行
4、当 WriteLine() 函数有多个参数时,输出第一个参数中的内容,而第二个参数中的内容替换掉第一个参数中对应位置的占位符一起输出。
Console.WriteLine("A:{0},a:{1}",65,97);
5、如果第一个参数没有留占位符,那么第二个参数内容不输出.
6、占位符从零开始计数,且占位符中的数字不能大于第二个参数的个数减一(要求占位符必须有可替换的值).占位符数字与第二个参数字符位置一一对应.
7、内置的 引用类型有:object、dynamic 和 string。
8、System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。
例如: int num;
num = Convert.ToInt32(Console.ReadLine());
函数 Convert.ToInt32() 把用户输入的数据转换为 int 数据类型,因为 Console.ReadLine() 只接受字符串格式的数据
C# 中的构造函数
1、类的 构造函数 是类的一个特殊的成员函数,当创建类的新对象时执行。构造函数的名称与类的名称完全相同,它没有任何返回类型。
2、默认的构造函数没有任何参数。但是如果你需要一个带有参数的构造函数可以有参数,这种构造函数叫做参数化构造函数。这种技术可以帮助你在创建对象的同时给对象赋初始值,
3、一个类定义必须且至少有一个构造函数,如果定义类时,没有声明构造函数,系统会提供一个默认的构造函数,不带任何参数的构造函数称为默认构造函数。如果声明了构造函数,系统将不再提供默认构造函数。
4、为了创建实例的方便,一个类可以有多个具有不同参数列表的构造函数,即构造函数可以重载。
5、构造函数的访问属性一般被定义为Public
6、构造函数好像不能被调用?
C# 中的析构函数
1、类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。
类的成员
局部变量:在指定范围内有效。
字段:即类中的变量或常量,包括静态字段、 实例字段、常量和只读字段。
方法成员:包括静态方法和实例方法。
属性:按属性指定的get方法和Set方法对字段进行读写。属性本质上是方法。
事件:代表事件本身,同时联系事件和事件处理函数。
索引指示器:允许像使用数组那样访问类中的数据成员。
关于C# internal的解释
internal关键字是类型和类型成员的访问修饰符。只有在同一个程序集的文件中,内部类型或者是成员才可以访问。这是msdn上对internal的描述。只有这么一句话,但是具体怎么理解呢?类型就是enum(枚举类型),class(类),interface(接口),struct(结构)等类型。类型成员如函数,成员变量等。那么什么是程序集呢?根据msdn上通俗易懂的解释就是,一个完整的.exe或者是.dll文件就是一个程序集。
C#中常用的类的修饰符
public:表示不限制对该类的访问。
protected:表示只能对其所在类和所在类的子类进行访问。
internal:不允许外部程序集使用该类。//这就是微软自带库的类被定义为public的原因吗,(一般我们不会把一个类定义为internal)
解释:其实这个内部就是“同一程序集”的内部,也就是说,internal修饰的方法或者属性,只要是在同一个程序集的中的其他类都可以访问,如果二者不在同一命名空间,只要使用using引用上相应的命名空间即可,这里,从另外一个方面也间接看出命名空间并不是界定访问级别的,而是保证全局的类唯一性的。
private:只有.NET中的应用程序或库才能访问。//????把类定义为private有什么用?
new:仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。
abstract:抽象类,不允许建立类的实例。
sealed:密封类,不允许被继承。
自己的总结:
protected 只有自己的派生类可见。
internal只有自己包内的程序可见
protected internal