浅析C# Calculator类

开发 后端
本文介绍C# Calculator类,包括介绍在C# 2.0中,除了可以对整个属性设置public等访问修饰符外,对内部的get/set访问器同样可以设置访问修饰符,当然它要受到一定的限制。

C# Calculator类

在C# 2.0中,除了可以对整个属性设置public等访问修饰符外,对内部的get/set访问器同样可以设置访问修饰符,当然它要受到一定的限制。由于有些限制和接口、重写有关,我暂时不会介绍,在这里,我仅介绍访问器和属性的访问修饰符冲突问题。
1、如果整个属性被设置为public,则其访问器没有限制;
2、如果整个属性被设置为protected internal,则访问器的访问修饰仅能设置为internal,protected或者private中的一种;
3、如果整个属性被设置为internal或者protected,那么访问器的访问修饰只能是private。
如下例:

  1. publicClassA  
  2. {  
  3. privatestringm_text;  
  4. privateintm_count;  
  5. publicstringText  
  6. {  
  7. get{returnm_text;}  
  8. protectedset{m_text=value;}  
  9. }  
  10. internalintCount  
  11. {  
  12. privateget{return5;}  
  13. privateset{m_count=value}  
  14. }  

从程序的实质来看,其实属性就是一种特殊的方法,它等同于下面的代码:

  1. public int GetAge()  
  2. {  
  3.  return m_age;  
  4. }  
  5. public void SetAge(int age)  
  6. {  
  7.  m_age = age;  

从这个意义上来理解get/set访问器的访问级别修饰,就更容易理解了。实质上,所谓的访问器的访问级别修饰,不外乎就是对方法进行访问级别修饰罢了。当然,C#中提供的属性要比访问字段的get/set方法更加简便。一般而言,如要定义方法,应该是和一个对象的行为有关,例如系列三定义的User类中的SignIn()和SignOut()方法,它们代表的是对象User的行为:登录和退出。

定义一个类的方法,必须包括五个要素:方法修饰符,方法名,返回类型,参数,以及方法体,例如Add方法:

  1. public int Add(int x, int y)  
  2. {  
  3.  return x + y;  

public即为我们的方法修饰符,它代表了该方法能被访问的级别。当然,修饰的方法的关键字还包括 static,virtual,abstract等,不过这些内容会在以后介绍。方法名自然是Add了,自然属于方法的名字。返回类型为int,代表该方法会返回一个结果,该结果类型为int类型。参数有两个,分别为x和y,它们的类型都是int。调用者可以通过参数传递值到方法体中,并对它们进行操作。方法体则是花括号中的内容。

假设Add方法是定义在类Calculator中,那么该方法的调用为:

  1. Calculator cal = new Calculator();  
  2. int result = cal.Add(3,5); 

通过对Add的调用,并传入3和5的参数,***得到结果8,并返回。因此,此时变量result的值就为8。而***行代码,则是利用new关键字对C# Calculator类进行实例化,获得一个对象cal。通过对象cal,才可以调用C# Calculator类的公共方法、属性或字段。

为什么要进行实例化呢?我们定义一个类类型,是为调用者所使用的,否则就失去其意义了。但我们定义的这样一个类类型,仅仅是代表了某种格式而已,例如User类说明它是一个class,它拥有了一些字段、属性和方法。通过这样的定义,我们在使用这些类型的对象时,.Net能够识别它。而如果真正要调用这些类型对象,就必须进行”实例化”,这个操作就会在运行期间,创建一个个对象,并被放在内存空间中供程序调用。就好比”人”就是一个类类型,而某一个具体的人,才是被实例化的、真正存在的对象。要使得一个类类型被实例化,就需要为该类型提供”构造器”。构造器是一种特殊的方法,它没有返回类型,且其方法名和类型名保持一致,如C# Calculator类的定义以及它的构造器:

  1. public class Calculator  
  2. {  
  3.  public Calculator()  
  4.  {  
  5.  }  
  6.  public int Add(int x, int y)  
  7.  {  
  8.   return x + y;  
  9.  }  

Calculator()方法就是一个”构造器”,这个构造器并没有参数,在C#中,也被称为默认的构造器,即使不定义该构造器,.Net也会为它默认创建。例如在Calculator类中,我们完全可以删去Calculator()构造器的定义。然而,一旦我们定义了有参数的构造器时,则该默认构造器将不存在,如果我们再需要不带参数创建实例的话,就需要显式创建该构造器了。例如之前的User类。如果姓名和密码是该类一个非常重要的属性,大部分情况下,如果要创建User对象时,都需要这两个属性的值时,我们就可以为User类专门创建一个构造器:

  1. public class User  
  2. {  
  3.  public User(string name, string password)  
  4.  {  
  5.   m_name = name;  
  6.   m_password = password;  
  7.  }   

【编辑推荐】

  1. 分析C#不安全代码
  2. 浅析C#调用ImageAnimator
  3. C#连接Access、SQL Server数据库
  4. 浅谈C#固定的和活动的变量
  5. 介绍C#中的值类型
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-21 17:24:06

C# SingleIn

2009-08-21 17:24:06

C# SingleIn

2009-08-27 16:18:47

C#类C#结构体

2009-08-20 11:07:07

C#共享内存

2009-08-12 16:46:22

C#读取XML文档

2009-08-13 14:06:37

C#结构体结构体和类的区别

2009-08-07 17:25:37

C# SortedLi

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-25 17:59:49

C#入门

2009-08-18 15:31:07

C# 操作Excel

2009-08-20 14:43:03

C#正则表达式Rege

2009-07-30 18:36:00

C#接口C#抽象类

2009-08-20 15:06:51

C#正则表达式

2009-08-20 15:02:41

C#正则表达式

2009-08-20 14:57:00

C#正则表达式

2009-08-20 15:10:33

C#正则表达式

2009-08-18 10:30:30

C#枚举

2009-08-27 11:43:31

C#语法

2009-08-17 13:34:02

C#异步操作
点赞
收藏

51CTO技术栈公众号