非静态的字段、方法或属性……要求对象引用【學習】要求對象引用?
来源:互联网 发布:古墓丽影崛起数据损毁 编辑:程序博客网 时间:2024/05/18 02:26
首先看一段代碼:
using System;
public class TestDelegate
{
delegate void DG(string str);
public void Speaking(string strContent)
{
Console.WriteLine(strContent);
}
public void SayGoodBye(string strName)
{
Console.WriteLine("Goodbye,"+strName);
}
public void SayWelCome(string strName)
{
Console.WriteLine("Welcome,"+strName);
}
static void Main(string[] args)
{
DG a=new DG(SayWelCome);
DG b=new DG(Speaking);
DG c=new DG(SayGoodBye);
Person ps=new Person("隴上煙雨劍");
a(ps.Name);
b("您好!");
c(ps.Name);
}
};
public class Person
{
public string strName=null;
public Person()
{
this.Name="";
}
public Person(string stringName)
{
this.Name=stringName;
}
public string Name//實例化以後就具有的屬性
{
get
{
return strName;
}
set
{
strName=value;
}
}
};
在編譯的工程中會報這樣的錯誤:
TD.cs(19,15): error CS0120:
非静态的字段、方法或属性“TestDelegate.SayWelCome(string)”要求对象引用
TD.cs(20,15): error CS0120:
非静态的字段、方法或属性“TestDelegate.Speaking(string)”要求对象引用
TD.cs(21,15): error CS0120:
非静态的字段、方法或属性“TestDelegate.SayGoodBye(string)”要求对象引用
這是為什麽呢?
我們知道,類裏面的方法有兩种表現:一種是直接可以來用的,還有一種是必須實例化以後才能使用的。前者要求在方法聲明的時候必須加上static關鍵字(是不是想起Main方法了???),因爲這個方法不能被實例化!後者就不能加static了,這種方法不能像前面的一樣通過類名.方法名來調用,必須通過實例名.方法名來調用(實例化的過程就是創建一個對象嘛--這是廢話)。
清楚了這一點,改起來就容易了!
下面給出正確的代碼:
using System;
public class TestDelegate
{
delegate void DG(string str);
public void Speaking(string strContent)
{
Console.WriteLine(strContent);
}
public void SayGoodBye(string strName)
{
Console.WriteLine("Goodbye,"+strName);
}
public void SayWelCome(string strName)
{
Console.WriteLine("Welcome,"+strName);
}
static void Main(string[] args)
{
TestDelegate td=new TestDelegate();
DG a=new DG(td.SayWelCome);
DG b=new DG(td.Speaking);
DG c=new DG(td.SayGoodBye);
Person ps=new Person("隴上煙雨劍");
a(ps.Name);
b("您好!");
c(ps.Name);
}
};
public class Person
{
public string strName=null;
public Person()
{
this.Name="";
}
public Person(string stringName)
{
this.Name=stringName;
}
public string Name//實例化以後就具有的屬性
{
get
{
return strName;
}
set
{
strName=value;
}
}
};
運行結果:
Welcome,隴上煙雨劍
您好!
Goodbye,隴上煙雨劍
http://yanyuge.blog.sohu.com/2184139.html
- 非静态的字段、方法或属性……要求对象引用【學習】要求對象引用?
- 非静态的字段、方法或属性 要求对象引用
- 非静态的字段、方法或属性要求对象引用
- 非静态的字段,方法或属性。。。。。。要求对象引用
- 非静态的字段、方法或属性“……”要求对象引用
- VS提示“非静态的字段、方法或属性要求对象引用”
- VS提示“非静态的字段、方法或属性要求对象引用”
- 非静态的字段、方法或属性“System.Web.UI.Page.ClientScript.get”要求对象引用
- VS 提示:非静态的字段、方法或属性要求对象引用
- 非静态的字段,方法或属性要求对象引用如何解决?
- 非静态的字段、方法或属性“System.Web.UI.Page.Session.get”要求对象引用
- .net 非静态的字段、方法或属性 要求对象引用
- “非静态字段、方法或属性’System.Web.UI.Page.Response.get‘要求对象引用”错误
- CS0120: 非静态的字段、方法或属性“System.Web.UI.Page.Request.get”要求对象引用的解决办法
- 错误“非静态的字段、方法或属性“System.Web.UI.Page.Response.get”要求对象引用”的解决办法
- 错误:非静态的字段、方法或属性“System.Web.UI.Page.Session.get”要求对象引用
- 错误:非静态的字段、方法或属性“System.Web.UI.Page.Session.get”要求对象引用
- 错误“非静态的字段、方法或属性“System.Web.UI.Page.Server.get”要求对象引用”
- ns-3实验环境搭建(上)
- C语言:五大基本排序算法
- 八大排序
- 代理键的理解
- ORACLE索引
- 非静态的字段、方法或属性……要求对象引用【學習】要求對象引用?
- LeetCode: Spiral Matrix II
- Java中的Enum的使用与分析
- Ecshop首页显示累计售出(已售出XX件)(精品,新品,热销,分类商品)的方法
- 跟踪linux里的命令的系统调用strace
- MYGUI在win7下的中文完美输入及其显示
- ogrese LOD
- Java中的Enum用法介绍
- DM36x视频前端处理