用VS2010编C#程序扫盲

  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 块的结束。

时间: 2024-12-14 21:42:06

用VS2010编C#程序扫盲的相关文章

用VS2010编C#程序扫盲 2

0.正则表达式:http://www.runoob.com/csharp/csharp-regular-expressions.html 1.异常处理: try { // 引起异常的语句 } catch( ExceptionName e1 ) { // 错误处理代码 } catch( ExceptionName e2 ) { // 错误处理代码 } catch( ExceptionName eN ) { // 错误处理代码 } finally { // 要执行的语句 } 2. C# 异常是使用类

面向对象编程?没有对象你编毛程序!!!

听说你们程序员都是面向对象编程?你没有对象编毛程序!!! 程序员打油诗 写字楼里写字间,写字间里程序员; 程序人员写程序,又拿程序换酒钱. 酒醒只在网上坐,酒醉还来网下眠; 酒醉酒醒日复日,网上网下年复年. 但愿老死电脑间,不愿鞠躬老板前; 奔驰宝马贵者趣,公交自行程序员. 别人笑我忒疯癫,我笑自己命太贱; 不见满街漂亮妹,哪个归得程序员.       程序猿最怕弹出的窗口:"找不到对象.指针为空" 这辈子做程序员的命 宝宝数学很好,2岁就可以从1数到10了.后来,我告诉他0比1还小.

VS2010编译Lua程序(lua-5.2.3)

编译静态链接库 1.下载Lua源码 下载后解压到一个目录下,这里假设解压到D:\win32Lua 注意下载的版本,如果是5.2.x,后面代码中的C API发生了改变 2)在VS2010中新建一个静态库项目,项目命名为lua        a 选择新建 Win32 console project b 在wizard界面选择 static Library:不选择Precomplied Header 3)往工程中添加代码 a 复制D:\win32Lua\lua-5.2.3\src 目录下的*.h文件到

VS2010安装项目程序打包操作详解

1.打开VS2010,选择 新建项目---其他项目类型---Visual Studio Installer----安装项目 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件: 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe: 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式. 2.在应用程序文件夹,点击右

DevStore小编教程序员什么时候辞职?

摘要:辞职,小编想是每一个作为职场中的我们时常会突然冒出来的想法.作为码农的你,可能也不例外.但是什么时候辞职?要不要辞职?这是一个值得深思熟虑的问题,因为这个决定会对程序员的职业生涯和生活产生深远的影响. 很多程序员因为害怕被贴上"爱跳槽"的标签而裹足不前,还有一些是因为所谓的"声誉"而呆在老公司,但一些结果显示,呆在老公司的程序员处理问题的经验和职业发展前景远不如那些早早跳槽的.而有的公司甚至非常愿意在岗位上看到一些积极的人员流动. 程序员通常会因为像产品发布失

VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库

1.问题描述 原开发环境:Win7 64位旗舰版,VS2010,ThinkPad T460 出现问题:自己开发的MFC程序在WinXP环境下无法正常运行,弹框"无法定位程序输入点InitializeConditionVariable于动态链接库kernel32.dll" 重新搭建开发环境:WinXP SP3 专业版,VS2010,GIGABYTE某motherboard(原谅办公室没别的空闲主机了) 问题依旧存在:重新编译通过,但运行时还是弹框"无法定位程序输入点Initia

使用VS2010开发Qt程序的一点经验(转载)

转载:http://www.cnblogs.com/csuftzzk/p/VS_Qt_Experience.html 导读 相比于Qt Creator,我更喜欢用VS2010来进行开发.虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手.其中最重要的一点是,有时候Qt Creator报的错误莫名其妙.要根据提示找到错误根源显得无从下手.而VS的一般错误说明都比较人性化,即便在某些时候无从解决,也可以通过搜索引擎大致定位出错误的源头.下面是

VS2010编译Qt程序失败------error LNK1123: 转换到 COFF 期间失败:

error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏使用VS2010编译VC++项目的时候可能会出这个问题. 据说升级到SP1后可能问题解决,但是下载量太大,目前没有得到证实. 网上大多的方法都是说在“清单工具”中将嵌入清单改成“否”,但是这个不一定100%解决问题. 我总结了下 http://www.verydemo.com/demo_c278_i5203.html http://davidrobot.com/2014/06/qt5_vs2010_lnk1123_erro

使用VS2010开发Qt程序的4点经验(QT4到QT5的升级,更改sln文件,切换工程使用的Qt库,在VS的Solution Explorer视图中建立文件夹)

导读 相比于Qt Creator,我更喜欢用VS2010来进行开发.虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手.其中最重要的一点是,有时候Qt Creator报的错误莫名其妙.要根据提示找到错误根源显得无从下手.而VS的一般错误说明都比较人性化,即便在某些时候无从解决,也可以通过搜索引擎大致定位出错误的源头.下面是在调试网上的一些源代码的时候,积累下来的一点经验,记下来一来备忘,二来也可供后来人参考. The system can