THIS 四种用法
用法一 this代表当前类的实例对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
namespace Demo { public class Test { private string scope = "全局变量" ; public string getResult() { string scope = "局部变量" ; // this代表Test的实例对象 // 所以this.scope对应的是全局变量 // scope对应的是getResult方法内的局部变量 return this .scope + "-" + scope; } } class Program { static void Main( string [] args) { try { Test test = new Test(); Console.WriteLine(test.getResult()); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.ReadLine(); } } } } |
用法二 用this串联构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
namespace Demo { public class Test { public Test() { Console.WriteLine( "无参构造函数" ); } // this()对应无参构造方法Test() // 先执行Test(),后执行Test(string text) public Test( string text) : this () { Console.WriteLine(text); Console.WriteLine( "有参构造函数" ); } } class Program { static void Main( string [] args) { try { Test test = new Test( "张三" ); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.ReadLine(); } } } } |
用法三 为原始类型扩展方法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步