`

.net 编程基础

    博客分类:
  • C#
 
阅读更多
C#语言简介
   C#是由Microsoft公司专门为.NET应用而开发的一种现代的面向对象的高级编程语言,因此它与.NET平台之间实现了非常完善的结合。

C#语言特点
    面向对象  兼容性  版本处理技术

第一个C#应用程序
using System;
using System.Collections.Generic;
using System.Text;

namespace day1_1
{
    class Class1
    {
        static void Main(string[] args)
        {
            string name;
            Console.Write("输入姓名:");
            name = Console.ReadLine();
            Console.Write("姓名:");
            Console.WriteLine(name);
            Console.ReadKey();
        }
    }
}

导入命名空间
   using System导入命名空间,类似于C及C++中的include语句,用于导入预定义的元素,以便于在程序中自由地使用这些元素。

C#程序中注释
  C#语言中常用的有三种注释方式:
  1、 //单行注释——注释到行尾
  2、 /* 单行或多行注释  */
  3、 XML文档注释 <!-- 单行或多行 -->

C#异常处理
  什么是异常
  简单的说,异常就是C#程序在运行过程中出错、异常终止的情况。

  异常及错误的区别
  错误:指系统内部错误、资源耗尽等严重情况;
  异常:指其他因编程错误或偶然的外在因素导致的一般性问题,可遇知、可避免问题。

C#异常处理机制
  C#程序的执行过程中如出现异常,会自动生成一个异常对象,该对象包含了有异常信息,并且自动提交给C#公共语言运行系统(CLR),这个过程称为抛出异常。
  当C#运行时系统收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获异常。如果C#运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的C#程序也将退出。
引用

try
            {
                ...... //可能产生异常的代码
            }catch(ExceptionName1 e){
                ...... //当产生ExceptionName1型异常时的处置措施
            }catch(ExceptionName2 e){
                ...... //当产生ExceptionName2型异常时的处置措施
            }[finally{
                ...... //无条件执行的语句
            }]

需要强调的是:每个catch语句块捕捉一个异常,后面的异常不能是前一个异常的派生类。

人工捕获异常
  C#语言异常对象除在程序中出现异常时由系统自动生成并抛出,也可以根据需要进行人工创建并抛出。
  人工抛出异常必须是Exception或其子类的实例。
引用

      IOException e = new IOException();
      throw e;
      throw new InvalidTimeException("minute is not a valid minute");


用户自定义异常
  C#语言允许用户在需要时创建自己的异常类型,用于表述系统默认未涉及到的其他异常状况,这些类型必须继承Exception类或其子类。
using System;
using System.Collections.Generic;
using System.Text;

namespace day1_1
{
    class Class1
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            try
            {
                p.setAge(10000);
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
            }
            try
            {
                p.setSex("nothing");
            }
            catch (MyException ee)
            {
                Console.WriteLine(ee.Message+" " + ee.getID());
            }
            Console.ReadKey();
        }
    }

    class MyException : Exception
    {
        private int id;
        public MyException(String msg, int id)
            : base(msg)
        {
            this.id = id;
        }
        public int getID()
        {
            return this.id;
        }
    }

    class Person
    {
        private int age;
        private string sex;

        public void setAge(int age)
        {
            if (age < 0 || age > 200)
            {
                MyException error = new MyException("age error", 1);
                throw error;
            }
            else
            {
                this.age = age;
            }
        }

        public void setSex(string sex)
        {
            if (sex != "男" && sex != "女")
            {
                MyException error = new MyException("sex error", 2);
                throw error;
            }
            else
            {
                this.sex = sex;
            }
        }
    }
}
 

面向对象的程序设计
  面向对象的编程思想是力图使计算机语言中的对事物的描述与现实世界中该事物的本来面目尽可能地一致性,这样可以增强程序的可理解性,使程序易于维护和改进,并进一步促进代码的复用。

类和对象的关系
类和对象是面向对象的编程技术中的核心概念。类的概念和实际生活中“事物种类”的概念完全一致,面向对象编程技术中的“类”是根据分析和处理问题需要,对某一类现实事务事物的抽象概括。
类是对一类事物描述,因而是抽象的概念上的定义,而对象是实际存在的该类事物的每个个体,是“看得见、摸得着”的实体。

  类的声名
  [<modifiers>] class <class_name>
  {
   [<fields_declarations>]
   [<constructor_declarations>]
   [<method_declarations>]
  }
  <modifiers>为修饰符,可用的有public、abstract等关键字。用于说明所定义的类有关方面的特性。
  class也是C#语言关键字,表明这是一个类的定义。
  <class_name>是类的名字。
  <fields_declarations>是域及域声明部分。
  <constructor_declarations>是构造方法声明部分。
  <method_declarations>是普通方法声明部分。

  域声明
  类的定义中所包含的数据称为域。
  [<modifiers>] <type> <attr_name>;
  <modifiers>为修饰符,可用的有public、private static等,用于说明该域的一些性质;
  <type>是该域的数据类型,可以是任何合法的C#数据类型。
  <fields_name>是域名称。

  方法声明
[<modifiers>]  <return_type> <name> ([<argu_list>]){
{
    [<statements>]
}
<modifiers>为修饰符,可用的有public、private static等,用于说明方法的属性;
<return_type>是该方法的返回值类型,可以是任何合法的C#数据类型;
<name>是方法名;
<argu_list>是方法的参数列表,包括参数的类型和名称,如有多个参数,中间用“,”号分隔;
[<statements>是0或多行C#语句。

创建对象及访问对象成员
正确地声明了C#类之后,就可以在其他的类或应用程序中使用该类了,如创建该类的对象并访问对象成员等。对象成员是指一个对象所拥有的域及属性或可以调用的方法,例如对象所属的类中定义的所有域及属性和方法。可以使用new +构造方法创建对象,并使用“对象名.对象成员“的方式访问对象成员。
 
信息的隐藏和封装
域声明为私有(private)的成员变量,这样只有在同一类中才有访问该域,而不允许在其它的场合中直接对其进行操作。这样在对数据进行封装的同时也实现了信息的隐藏。
C#中通过将封装数据声明为私有的,再提供一个或多个公开的(public)方法实现对该域操作,可以方便地加入控制逻辑,限制对域的不合理操作,使C#程序更加健壮和易于维护。
public void setAge(int a){
			if(a >= 0 && a <=150){
				age = a;
			}else{
				Console.WriteLine("你输入的年龄有误!");
			}
		}

构造方法
构造方法声明
构造方法是C#类中的一种特殊方法,其功能是创建其所属类型的一个新的对象。声明构造方法规则如下:
<modifiers> <class_name>([argu_list>]){
   [<statements>]
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics