this引用的第二种用法是把当前对象作为参数传给另一个方法
class Class1
{
static void Main()
{
MyClass vMyClass = new MyClass();
UClass vUClass = new UClass();
Console.WriteLine("调用前x={0}", vMyClass.x);
vMyClass.Foo(vUClass);
Console.WriteLine("调用后x={0}", vMyClass.x);
}
}
class MyClass
{
internal int x = 123;
public void Foo(UClass Bar)
{
Bar.Bar(this);
}
}
class UClass
{
public void Bar(MyClass AMyClass)
{
AMyClass.x = 321;
}
}
(2)
/*
第一个this的意思是调用Car(int petals)方法的属性petals。
第二个this的意思是实例化Car(String s, int petals)方法中的参数s(this.s = s)。
第三个this是调用Car(String s, int petals)方法的两个参数并传参。
在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等;
也可以用this来做为参数状当前实例做为参数传入方法.
还可以通过this[]来声明索引器
*/
}
public class Car // 声明类Car
{
int petalCount = 0;
/*
//在Car类中声明一个非静态的整型变量petalCount,初始值为0
// 未用Static声明的变量叫做静态变量,非静态成员属类的实例,我们只能在调用类的构
// 造函数对类进行实例化后才能通过所得的实例加"."来访问声明一个非静态的字符串变量s, // 初始值为"null"; 注意:s = "null"与s = null是不同的
*/
String s = "null";
Car(int petals) // Car类的默认构造函数
{
petalCount = petals; // Car类的默认构造函数中为 petalCount 赋值为传入的参数petals的值
Console.WriteLine("Constructor w/int arg only,petalCount = " + petalCount); // 输出petalCount
}
Car(String s, int petals)// 重载Car类的构造函数 Car(String s, int petals)的第二个参数
: this(petals) // : this(petals) 表示从当前类中调用petals变量的值来作为构造函数重载方法
{
this.s = s;
Console.WriteLine("String & int args");
}
// 在构造函数中为s赋值
// 非静态成员可以在构造函数或非静态方法中使用this.来调用或访问,也可以直接打变量的名字,因此这一句等效于s = s,
//但是这时你会发类的变量s与传入的参数s同名,这里会造成二定义,所以要加个this.表示等号左边的s是当前类自己的变量
Car() // 重载构造函数,:
: this("hi", 47) // this("hi", 47) 表示调Car(String s, int petals) 这个重载的构造函数,并直接传入变量"hi"和47
{
Console.WriteLine("default constructor");
}
public static void Main()
{
Car x = new Car();
Console.Read();
}
}
分享到:
相关推荐
C#中this方法的一些问题,this关键字引用被访问成员所在的当前实例。静态成员函数没有this指针。this关键字可以用来从构造函数,实例方法和实例化访问器中访问成员。
本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下: 一、this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Class)的概念和对象(Object)的概念 类是对事物概括,...
this关键字在C#程序设计中的应用非常频繁,今天本文就this关键字的用法做一番分析,希望能提对大家的C#程序设计有一定的帮助作用。具体分析如下: 1.代表当前类,在当前类中可使用this访问当前类成员变量和方法...
简单介绍了C#中this指针的用法。
c#基础之this关键字,demo程序,具体见地址:http://www.cnblogs.com/imstrive/p/5539049.html
本文给大家汇总介绍了C#中的几种this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。
定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展 示例如 namespace Demo{ // 这里的类必须为静态类 public static class Json { // 方法为静态方法 // ...
显示窗体标题栏中的按钮,C#源代码this.ControlBox = true; VisualStudio2008创建
弄明白base的原理, 有实例告诉你base的调用,索引器的调用
允许窗体标题栏的最小化按钮,C#源代码this.MinimizeBox = true; VisualStudio2008创建
隐藏窗体标题栏中的按钮,C#源代码this.ControlBox = false; VisualStudio2008创建
在窗体标题栏中添加帮助按钮,C#源代码this.HelpButton = true; VisualStudio2008创建
禁止窗体标题栏的最小化按钮,C#源代码this.MinimizeBox = false; VisualStudio2008创建
C#THIS用法.pdf
设置程序窗体在桌面上的位置和调整程序窗体的尺寸大小的实例,C#源代码this.DesktopLocation = new Point(50, 100);this.Size = new Size(100, 500); VisualStudio2008创建