1 c# asp.net static-methods instance-methods
我正在使用c#中的asp.net Web应用程序.我有一个名为GetUser的公共类.在那个类中,我有一个名为GetCurrentUser的方法.方法如下:
public MobileUser GetCurrentUser(MDMDataContext dc, string userCode)
{
using (dc)
{
dc.ObjectTrackingEnabled = false;
var currentUser =
from MobileUser in dc.MobileUsers
where MobileUser.UserCode == usercode
select MobileUser;
MobileUser mu = new MobileUser();
mu = currentUser.Single();
return mu;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用GetCurrentUser实例方法时,如下所示:
using (MDMDataContext dc = new MDMDataContext())
{
GetUser.GetCurrentUser(dc, "ABCD");
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,"非静态字段,方法或属性的对象引用' .... GetUser.GetCurrentUser ....'
但是如果我将static关键字添加到函数中,则错误就会消失.有人可以为我揭开这个概念的神秘面纱吗?
您的方法是一个实例方法,这意味着您需要一个运行它的实例:
using (MDMDataContext dc = new MDMDataContext())
{
GetUser user = new GetUser();
user.GetCurrentUser(dc, "ABCD");
}
Run Code Online (Sandbox Code Playgroud)
的static关键字意味着,该方法是静态的,并且可用于类型作为一个整体,不依赖于特定的实例.这就是为什么当它被标记为静态时你可以使用类名称(并且必须以这种方式调用它)来调用它.
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |