ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:67.50KB ,
资源ID:11233262      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11233262.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c#this的使用方法.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c#this的使用方法.doc

1、this(C# 参考) this 关键字引用类的当前实例。 以下是 this 的常用用途: · 限定被相似的名称隐藏的成员,例如: 复制代码 public Employee(string name, string alias) { this.name = name; this.alias = alias; } · 将对象作为参数传递到其他方法,例如: 复制代码 CalcTax(this); · 声明索引器,例如: 复制代码 public int this [int param] { get { return array[param];

2、 } set { array[param] = value; } } 由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。 示例 在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。 复制代码 // keywords_this.cs // this example using System; class Employee { private string name;

3、 private string alias; private decimal salary = 3000.00m; // Constructor: public Employee(string name, string alias) { // Use this to qualify the fields, name and alias: this.name = name; this.alias = alias; } // Printing method: publ

4、ic void printEmployee() { Console.WriteLine("Name: {0}\nAlias: {1}", name, alias); // Passing the object to the CalcTax method by using this: Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this)); } public decimal Salary { get { return salary;

5、 } } } class Tax { public static decimal CalcTax(Employee E) { return 0.08m * E.Salary; } } class MainClass { static void Main() { // Create objects: Employee E1 = new Employee("John M. Trainer", "jtrainer"); // Display resu

6、lts: E1.printEmployee(); } } 输出 Name: John M. Trainer Alias: jtrainer Taxes: $240.00 比如你的类中有一个成员变量为a。在你的成员函数中有定义了一个局部变量a。此时就必须使用this关键字来指示类的成员。也就是类的成员变量a写为this.a 其实这个很容易理解的,你写的那些响应函数,说白了都是类方法。 在程序运行后,可能会被很多这个类的实例(对象)来调用。。。那么请问,系统怎么知道调用这个类方法的是谁?是哪个对象? 所以,这时this就发挥它的作用啦。 每当

7、一个对象调用这个类方法的时候,系统就会自动做这个对象的指针赋给this指针。 this指当前类 比如在一个AAA类里有一个aaa的方法 在这个AAA类中调用这个aaa方法就可以用this.aaa 如果是在别的类中就要实例化一个对象来调用这个方法 AAA a=new AAA(); a.aaa; 在静态的方法中不能使用this 如main方法就是一个静态方法 this是保留的指针。指向当前对象。它的好处就是在编译期就可以获得对象的地址。比如一个类中有个成员类。成员类需使用上层类的函数,就可以把this传到成员类中。 this 关键字引用类的当前实例 以下是

8、调用本内中的构造函数,用this using System; namespace CallConstructor {     public class Car     {         int petalCount = 0;         String s = "null";                Car(int petals)         {             petalCount = petals;             Console.WriteLine("Constructor w/int arg only,petalCount = "

9、 + petalCount);         }         Car(String s, int petals)             : this(petals)   //第一个this的意思是调用Car(int petals)方法的属性petals。         {             //第二个this的意思是实例化Car(String s, int petals)方法中的参数s(this.s = s)。                    this.s = s;             Console.WriteLine("String & int

10、 args");         }         Car()             : this("hi", 47)   //第三个this是调用Car(String s, int petals)方法的两个参数并传参。         {             Console.WriteLine("default constructor");         }         public static void Main()         {             Car x = new Car();             Console.Read

11、);         }     } } //结果: //Constructor w/int arg only,petalCount = 47 //String & int args //default constructor 永远记得:this出现了,代表它所在的类的对象 c#中 this保留字的用法 2007年03月21日 星期三 21:31 this 关键字将引用类的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。 以下是 this 的常用用途: 限定被相似的名称隐藏的成员,例如: pu

12、blic Employee(string name, string alias) {     this.name = name;     this.alias = alias; } 将对象作为参数传递到其他方法,例如: CalcTax(this); 声明索引器,例如: public int this [int param] {        get        {           return array[param];        }        set        {           array[param] = value;    

13、    }     } 在静态方法、静态属性访问器或字段声明的变量初始值设定项中引用 this 是错误的。 示例 在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。 // keywords_this.cs // this example using System; public class Employee {     public string name;     public string alias;     public decimal sal

14、ary = 3000.00m;     // Constructor:     public Employee(string name, string alias)     {        // Use this to qualify the fields, name and alias:        this.name = name;        this.alias = alias;     }     // Printing method:     public void printEmployee()     {        Console.Write

15、Line("Name: {0}\nAlias: {1}", name, alias);        // Passing the object to the CalcTax method by using this:        Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));     } } public class Tax {     public static decimal CalcTax(Employee E)     {        return (0.08m*(E.salary));    

16、} } public class MainClass {     public static void Main()     {        // Create objects:        Employee E1 = new Employee ("John M. Trainer", "jtrainer");        // Display results:        E1.printEmployee();     } } 输出 Name: John M. Trainer Alias: jtrainer Taxes: $240.00 this关键

17、字--精通c#编程 2008-05-22 10:04 this关键字引用被访问成员所在的当前实例。静态成员函数没有this指针。this关键字可以用来从构造函数,实例方法和实例化访问器中访问成员。 不能在静态方法。静态属性访问器或者域声明的变量初始化程序中使用this关键字,这将会产生错误。 1.在类的构造函数中出现的this作为一个值类型表示对正在构造的对象本身的引用。 2.在类的方法中出现this作为一个值类型表示对调用该方法的对象的引用。 3.在结构的构造函数中出现的this作为一个变量类型表示对正在构造的结构的引用。 4.在结构的方法中出现的this作为一个变量类型表示对

18、调用该方法的结构。 ============================================ 使用this访问被相似名字隐藏的成员 using System; class E { public int id; public string name; public E(string name,int id) {    this.name=name;    this.id=id;//限定被相似的名称隐藏的成员 } public void P() {    Print.pe(this); //作为参数传递到其他方法中去 } class Print

19、{    public static void pe(E x)    {     Console.WriteLine("name:{0}\t id:{1}",x.name,x.id);    } } } class Test { public static void Main() {    Console.WriteLine("请输入姓名:");    string name=Console.ReadLine();    Console.WriteLine("请输入id号");    string s=Console.ReadLine();    int id=i

20、nt.Parse(s);    E e=new E(name,id);    e.P(); } } ================================ 利用this在 索引中的引用访问类 using System; class Ic { private int []arr=new int[10]; public int this[int index] {    get    {     if(index<0 || index>=10)     {      Console.WriteLine("下标越界!");      return 0;

21、    }     else      return arr[index];    }    set    {     if(!(index>=10 || index<0))      arr[index] = value;    } } } class T { static void Main() {    Ic mic=new Ic();    Console.WriteLine("输入要赋值元素的下标:");    string s=Console.ReadLine();    int index=int.Parse(s);       Conso

22、le.WriteLine("请输入值:");    string str=Console.ReadLine();    int n=int.Parse(str);       mic[index]=n;    Console.WriteLine("current value:mic[index]={0}",mic[index]); } } ================================================================================== =====================================

23、 this关键字用在类的方法声明内部,表示“当前调用此方法的那个对象”的引用。 为什么这么用呢?首先看下面的例子: public class TestThis { public static void main(String[] args) {    Dog dog=new Dog();    dog.bark(2); } } class Dog{ String name=""; public Dog() { } public void bark(i

24、nt n){    System.out.println("叫"+n+"声"); } } 在面向对象的编程中,经常要做的事情,就是“发送消息给对象”,要就是指的是“方法的调用”过程。 在上面的代码中指的就是:dog.bark(2);这句代码。而为了“发送消息”给对象这个过程,编译器“暗地里”,在这个方法的调用过程中干了一件事,就是“私底下”将dog这个引用作为参数,传递到了bark方法的内部。(当然,这个过程是编译器“偷偷”完成的,而不需要我们去明码表示出来,如果我们想自己明码完成这个过程,那一定会出错的,呵呵……)。 知道了上面的过程,那么,当你在定义一个类的方法时,如果想在这个

25、方法内部获取“被偷偷”传进来的这个当前对象的引用呢?因为根本没有明码的标志符可用,所以,在Java中就有这个专门的关键字:this,用在方法定义的内部,表示当前正在调用此方法的那个对象的引用。 所以,这个时候,如果写出下面的代码:就能从本质上理解类的各个方法之间是如何相互调用的了。 public class TestThis { public static void main(String[] args) {    Dog dog=new Dog();    dog.bark(2); } } class Dog{ String name=""; public Dog() {

26、 } public void bark(int n){    this.bark();//这里直接使用bark();即可,不应该画蛇添足使用this    System.out.println("叫"+n+"声"); } public void bark(){    System.out.println("狗要叫啦!"); } } 但是应该注意到,在上面的bark(int n)这个方法的定义中,使用了this.bark();,这里使用this是没有必要的,因为,编译器能够自动帮助我们添加这个this。但是,有的人却习惯这么使用,我现在刚刚学习Java,也是一直在这么使用,前

27、段时间用swing写了点东西,里面也是这么用的。后来,朋友看我写的那些代码,呵呵,很乱很乱,因为我把this用在了没有必要使用的地方,所以,看我的代码的人就会觉得很乱。所以要养成良好的coding习惯啊。 当然,关于这种说法也有例外,比如说,为一个类的属性,定义getter和setter时,往往setter的参数的标志符和相应的属性相同,这个时候就需要在setter的内部使用this加以区分了。这也算是this关键字用在方法定义内部中的一种用法吧,当然,只是可能有的人在写代码时,没有这种习惯,比如说我就是。而,一些主流的java IDE却有这种习惯,呵呵。 class Dog{ Stri

28、ngname=""; public Dog() { } public void setName(String name){   this.name=name; } } 在类的方法定义中使用this的时候,就是当必需明确指出当前对象的引用时,才使用。例如,我们在定义的方法中需要返回当前对象的引用时。 public class TestThis { public static void main(String[] args) {    Dog dog=new Dog();    dog.bark(2); } } class Dog{ String name="";

29、 public Dog() { } public Dog bark(int n){    bark();    System.out.println("叫"+n+"声");    return this; } public void bark(){    System.out.println("狗要叫啦!"); } } 或者,在方法定义中调用了其他的方法,而调用这个其它的方法时,需要将当前对象的引用传递给这个其它的方法作为参数,这个时候应该使用this。 总结:通过理解上面的内容,就不难理解,为什么在静态方法(static)内部,不能使用this关键字的原因了。 因

30、为,在调用静态方法的时,不会将当前对象的引用传递进来(大多数情况,使用静态方法时,根本不会存在当前对象吧,呵呵)。 这样就不难得出使用静态方法时,几个需要注意的地方: 1:静态方法中只能调用其他的静态方法。 2:静态方法中只能访问静态属性。 3:静态方法中不能使用this关键字。(实际上也是上面的1和2)。 当然,上面的1、2两点是相对的,只是帮助我们理解,如果你在静态方法中,创建了一个类的对象,这个时候当然可以通过这个对象的引用访问这个对象的静态数据了。 最后得出一点:就是在调用静态方法时,一定要用类名去调用,而不建议使用对象的引用去调用(虽然,在语法上这样是允许的),避免引起混

31、淆。 C# 参考之访问关键字:base、this base base 关键字用于从派生类中访问基类的成员: 调用基类上已被其他方法重写的方法。 指定创建派生类实例时应调用的基类构造函数。 基类访问只能在构造函数、实例方法或实例属性访问器中进行。 示例: 在派生类中调用基类方法。 // base 关键字 // 访问基类成员 using System; public class BaseClass { protected string _className = "BaseClass"; public virtual

32、void PrintName() { Console.WriteLine("Class Name: {0}", _className); } } class DerivedClass : BaseClass { public string _className = "DerivedClass"; public override void PrintName() { Console.Write("The BaseClass Name is {0}"); //调用基类方法 base.PrintName(); Console.WriteLi

33、ne("This DerivedClass is {0}", _className); } } class TestApp { public static void Main() { DerivedClass dc = new DerivedClass(); dc.PrintName(); } } /**//* 控制台输出: The BaseClass Name is BaseClass This DerivedClass is DerivedClass */ 在派生类中调用基类构造函数。 // keywords_ba

34、se2.cs using System; public class BaseClass { int num; public BaseClass() { Console.WriteLine("in BaseClass()"); } public BaseClass(int i) { num = i; Console.WriteLine("in BaseClass(int {0})", num); } } public class DerivedClass : BaseClass { // 该构造器调用 BaseCla

35、ss.BaseClass() public DerivedClass() : base() { } // 该构造器调用 BaseClass.BaseClass(int i) public DerivedClass(int i) : base(i) { } static void Main() { DerivedClass dc = new DerivedClass(); DerivedClass dc1 = new DerivedClass(1); } } /**//* 控制台输出: in BaseClass()

36、in BaseClass(1) */ 注意点: 从静态方法中使用 base 关键字是错误的。 base 主要用于面向对象开发的对态这方面,在示例2中有体现。 this this 关键字引用类的当前实例。 以下是 this 的常用用途: 限定被相似的名称隐藏的成员 将对象作为参数传递到其他方法 声明索引器 示例: 综合示例。 // this 关键字 // keywords_this.cs using System; class Employee { private string _name; privat

37、e int _age; private string[] _arr = new string[5]; public Employee(string name, int age) { // 使用this限定字段,name与age this._name = name; this._age = age; } public string Name { get { return this._name; } } public int Age { get { return this._age; } } // 打印雇员资料 p

38、ublic void PrintEmployee() { // 将Employee对象作为参数传递到DoPrint方法 Print.DoPrint(this); } // 声明索引器 public string this[int param] { get { return _arr[param]; } set { _arr[param] = value; } } } class Print { public static void DoPrint(Employee e) { Console.WriteLine("Name:

39、 {0}\nAge: {1}", e.Name, e.Age); } } class TestApp { static void Main() { Employee E = new Employee("Hunts", 21); E[0] = "Scott"; E[1] = "Leigh"; E[4] = "Kiwis"; E.PrintEmployee(); for(int i=0; i<5; i++) { Console.WriteLine("Friends Name: {0}", E[i]); } Console.ReadLine(); } } /**//* 控制台输出: Name: Hunts Age: 21 Friends Name: Scott Friends Name: Leigh Friends Name: Friends Name: Friends Name: Kiwis */ 注意点: 由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。 索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服