您好,登录后才能下订单哦!
C#中 Calculator类的作用是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
C# Calculator类
在C# 2.0中,除了可以对整个属性设置public等访问修饰符外,对内部的get/set访问器同样可以设置访问修饰符,当然它要受到一定的限制。由于有些限制和接口、重写有关,我暂时不会介绍,在这里,我仅介绍访问器和属性的访问修饰符冲突问题。
1、如果整个属性被设置为public,则其访问器没有限制;
2、如果整个属性被设置为protected internal,则访问器的访问修饰仅能设置为internal,protected或者private中的一种;
3、如果整个属性被设置为internal或者protected,那么访问器的访问修饰只能是private。
如下例:
publicClassA { privatestringm_text; privateintm_count; publicstringText { get{returnm_text;} protectedset{m_text=value;} } internalintCount { privateget{return5;} privateset{m_count=value} } }
从程序的实质来看,其实属性就是一种特殊的方法,它等同于下面的代码:
public int GetAge() { return m_age; } public void SetAge(int age) { m_age = age; }
从这个意义上来理解get/set访问器的访问级别修饰,就更容易理解了。实质上,所谓的访问器的访问级别修饰,不外乎就是对方法进行访问级别修饰罢了。当然,C#中提供的属性要比访问字段的get/set方法更加简便。一般而言,如要定义方法,应该是和一个对象的行为有关,例如系列三定义的User类中的SignIn()和SignOut()方法,它们代表的是对象User的行为:登录和退出。
定义一个类的方法,必须包括五个要素:方法修饰符,方法名,返回类型,参数,以及方法体,例如Add方法:
public int Add(int x, int y) { return x + y; }
public即为我们的方法修饰符,它代表了该方法能被访问的级别。当然,修饰的方法的关键字还包括 static,virtual,abstract等,不过这些内容会在以后介绍。方法名自然是Add了,自然属于方法的名字。返回类型为int,代表该方法会返回一个结果,该结果类型为int类型。参数有两个,分别为x和y,它们的类型都是int。调用者可以通过参数传递值到方法体中,并对它们进行操作。方法体则是花括号中的内容。
假设Add方法是定义在类Calculator中,那么该方法的调用为:
Calculator cal = new Calculator(); int result = cal.Add(3,5);
通过对Add的调用,并传入3和5的参数,***得到结果8,并返回。因此,此时变量result的值就为8。而***行代码,则是利用new关键字对C# Calculator类进行实例化,获得一个对象cal。通过对象cal,才可以调用C# Calculator类的公共方法、属性或字段。
为什么要进行实例化呢?我们定义一个类类型,是为调用者所使用的,否则就失去其意义了。但我们定义的这样一个类类型,仅仅是代表了某种格式而已,例如User类说明它是一个class,它拥有了一些字段、属性和方法。通过这样的定义,我们在使用这些类型的对象时,.Net能够识别它。而如果真正要调用这些类型对象,就必须进行”实例化”,这个操作就会在运行期间,创建一个个对象,并被放在内存空间中供程序调用。就好比”人”就是一个类类型,而某一个具体的人,才是被实例化的、真正存在的对象。要使得一个类类型被实例化,就需要为该类型提供”构造器”。构造器是一种特殊的方法,它没有返回类型,且其方法名和类型名保持一致,如C# Calculator类的定义以及它的构造器:
public class Calculator { public Calculator() { } public int Add(int x, int y) { return x + y; } }
Calculator()方法就是一个”构造器”,这个构造器并没有参数,在C#中,也被称为默认的构造器,即使不定义该构造器,.Net也会为它默认创建。例如在Calculator类中,我们完全可以删去Calculator()构造器的定义。然而,一旦我们定义了有参数的构造器时,则该默认构造器将不存在,如果我们再需要不带参数创建实例的话,就需要显式创建该构造器了。例如之前的User类。如果姓名和密码是该类一个非常重要的属性,大部分情况下,如果要创建User对象时,都需要这两个属性的值时,我们就可以为User类专门创建一个构造器:
public class User { public User(string name, string password) { m_name = name; m_password = password; } }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。