博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用VS2010编C#程序扫盲
阅读量:6235 次
发布时间:2019-06-22

本文共 5033 字,大约阅读时间需要 16 分钟。

  0.

Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写

Bin 目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。

obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。 因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属 性—>配置属性—>高级—>增量编译来设置。

 

  1.创建string对象的几个方法:

      

static void Main(string[] args)        {           //字符串,字符串连接            string fname, lname;            fname = "Rowan";            lname = "Atkinson";            string fullname = fname + lname;            Console.WriteLine("Full Name: {0}", fullname);            //通过使用 string 构造函数            char[] letters = { 'H', 'e', 'l', 'l','o' };            string greetings = new string(letters);            Console.WriteLine("Greetings: {0}", greetings);            //方法返回字符串            string[] sarray = { "Hello", "From", "Tutorials", "Point" };            string message = String.Join(" ", sarray);            Console.WriteLine("Message: {0}", message);            //用于转化值的格式化方法            DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);            string chat = String.Format("Message sent at {0:t} on {0:D}",             waiting);            Console.WriteLine("Message: {0}", chat);            Console.ReadKey() ;        }

   2.

  • 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用

  3.

类和结构有以下几个基本的不同点:

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。

  4.枚举例子:

using System;namespace EnumApplication{   class EnumProgram   {      enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };      static void Main(string[] args)      {         int WeekdayStart = (int)Days.Mon;         int WeekdayEnd = (int)Days.Fri;         Console.WriteLine("Monday: {0}", WeekdayStart);         Console.WriteLine("Friday: {0}", WeekdayEnd);         Console.ReadKey();      }   }}

   5.类的默认访问标识符是internal,成员的默认访问标识符是 private

  6.构造函数的名称与类的名称完全相同,它没有任何返回类型。

  7.

类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。

析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。

析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。

  8.

class Line   {      private double length;   // 线条的长度      public Line()  // 构造函数      {         Console.WriteLine("对象已创建");      }      ~Line() //析构函数      {         Console.WriteLine("对象已删除");      }

  9.

我们可以使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。

关键字 static 意味着类中只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。您也可以在类的定义内部初始化静态变量。

  10.您也可以把一个成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在。

  11.一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据和函数。

  12.  在子类的构造函数中,初始化父类的成员变量。(在子类实例化时,父类对象应在子类对象创建之前被创建)

using System;namespace RectangleApplication{   class Rectangle   {      // 成员变量      protected double length;      protected double width;      public Rectangle(double l, double w)      {         length = l;         width = w;      }      public double GetArea()      {         return length * width;      }      public void Display()      {         Console.WriteLine("长度: {0}", length);         Console.WriteLine("宽度: {0}", width);         Console.WriteLine("面积: {0}", GetArea());      }   }//end class Rectangle     class Tabletop : Rectangle   {      private double cost;      public Tabletop(double l, double w) : base(l, w)      { }      public double GetCost()      {         double cost;         cost = GetArea() * 70;         return cost;      }      public void Display()      {         base.Display();         Console.WriteLine("成本: {0}", GetCost());      }   }   class ExecuteRectangle   {      static void Main(string[] args)      {         Tabletop t = new Tabletop(4.5, 7.5);         t.Display();         Console.ReadLine();      }   }}

  13.C# 不支持多重继承。但是,您可以使用接口来实现多重继承。下面的程序演示了这点

  14.

多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。

多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。

静态多态性:函数重载;运算符重载;   不能重载只有返回类型不同的函数声明

  15.

C# 允许您使用关键字 abstract 创建抽象类,用于提供接口的部分类的实现。当一个派生类继承自该抽象类时,实现即完成。抽象类包含抽象方法,抽象方法可被派生类实现。派生类具有更专业的功能。

请注意,下面是有关抽象类的一些规则:

  您不能创建一个抽象类的实例。

  您不能在一个抽象类外部声明一个抽象方法。

  通过在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。抽象类不能被声明为 sealed。

  

  16.动态多态性。。。还没明白,http://www.runoob.com/csharp/csharp-polymorphism.html

  17.String.Format("({0}, {1}, {2})", length, breadth, height);      字符串输出

  18.要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符

  19.

接口使用 interface 关键字声明,它与类的声明类似。接口声明默认是 public 的。

接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。

接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。

抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。

  20.预处理器指令指导编译器在实际编译开始之前对信息进行预处理。预处理器指令不是语句,所以它们不以分号(;)结束。

#define 它用于定义一系列成为符号的字符。
#undef 它用于取消定义符号。
#if 它用于测试符号是否为真。
#else 它用于创建复合条件指令,与 #if 一起使用。
#elif 它用于创建复合条件指令。
#endif 指定一个条件指令的结束。
#line 它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
#error 它允许从代码的指定位置生成一个错误。
#warning 它允许从代码的指定位置生成一级警告。
#region 它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。
#endregion

它标识着 #region 块的结束。                                                                        

转载于:https://www.cnblogs.com/soulmate1023/p/5350217.html

你可能感兴趣的文章
《微分方程_附应用及历史注记》Page 4.
查看>>
TreeView的绑定与读取
查看>>
frame和bounds
查看>>
TFS简介
查看>>
获取当前页面URL与服务器响应
查看>>
单例模式(Singleton)
查看>>
奇妙JS代码系列(三)一道有趣的题(创建一个长度为x数组)
查看>>
适合最新版docker自定义启动配置
查看>>
邮件客户端导入邮件通讯录地址薄
查看>>
IOS Socket 02-Socket基础知识
查看>>
echarts gauge仪表盘设置
查看>>
Milk 结构体
查看>>
[LeetCode]Reorder List
查看>>
java中异常抛出后代码还会继续执行吗
查看>>
在js中实现一个字符串的反转
查看>>
python基础--文件的操作
查看>>
hdu5425 Rikka with Tree II
查看>>
poj1785 Binary Search Heap Construction
查看>>
【三】MongoDB文档的CURD操作
查看>>
python 字典的函数
查看>>