C# 成员<;方法>;无法使用实例引用访问;改为使用类型名称限定它

C# 成员<;方法>;无法使用实例引用访问;改为使用类型名称限定它,c#,class,C#,Class,类文件: public class ServiceAccess { public DataTable GetAllShortCodes() { DataTable ShortCodeTable = new DataTable(); // logic to add data to Datatable return ShortCodeTable; } } 代码隐藏: protected void Page_Load(o

类文件:

public class ServiceAccess
{
    public DataTable GetAllShortCodes()
    {
        DataTable ShortCodeTable = new DataTable();
        // logic to add data to Datatable
        return ShortCodeTable;
    }
}
代码隐藏:

    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = ServiceAccess.GetAllShortCodes();
    }

已经做VB很长时间了,但对C#来说还是新手。我做错了什么?

您像静态方法一样调用
GetAllShortCodes

你需要把它改成这个

var service = new ServiceAccess();
DataTable dt = service.GetAllShortCodes();
或者根据需要将方法更改为静态方法

public static DataTable GetAllShortCodes()
{
    DataTable ShortCodeTable = new DataTable();
    // logic to add data to Datatable
    return ShortCodeTable;
}

像静态方法一样调用
GetAllShortCodes

你需要把它改成这个

var service = new ServiceAccess();
DataTable dt = service.GetAllShortCodes();
或者根据需要将方法更改为静态方法

public static DataTable GetAllShortCodes()
{
    DataTable ShortCodeTable = new DataTable();
    // logic to add data to Datatable
    return ShortCodeTable;
}

像静态方法一样调用
GetAllShortCodes

你需要把它改成这个

var service = new ServiceAccess();
DataTable dt = service.GetAllShortCodes();
或者根据需要将方法更改为静态方法

public static DataTable GetAllShortCodes()
{
    DataTable ShortCodeTable = new DataTable();
    // logic to add data to Datatable
    return ShortCodeTable;
}

像静态方法一样调用
GetAllShortCodes

你需要把它改成这个

var service = new ServiceAccess();
DataTable dt = service.GetAllShortCodes();
或者根据需要将方法更改为静态方法

public static DataTable GetAllShortCodes()
{
    DataTable ShortCodeTable = new DataTable();
    // logic to add data to Datatable
    return ShortCodeTable;
}


您试图调用一个静态方法,就像它是一个实例方法一样。所以正确的方法是什么?:-)我无法从你的代码中理解GetAllShortCodes是否应该是静态的,但你应该像调用实例那样调用它。GetAllShortCodes()如果它是实例,或者定义它
静态的
你的问题不应该导致你得到的错误。标题中的错误是调用静态方法,就像调用实例方法一样。您在代码中所做的是调用实例方法,就好像它是静态方法一样。你能检查一下你是否复制了错误的代码和/或错误消息吗?@hvd是的,这是我想的,这是问题标题中的一件事,与问题主体完全不同。你试图调用一个静态方法,就像它是一个实例方法一样。所以正确的方法是什么?:-)我无法从你的代码中理解GetAllShortCodes是否应该是静态的,但你应该像调用实例那样调用它。GetAllShortCodes()
如果它是实例,或者定义它
静态的
你的问题不应该导致你得到的错误。标题中的错误是调用静态方法,就像调用实例方法一样。您在代码中所做的是调用实例方法,就好像它是静态方法一样。你能检查一下你是否复制了错误的代码和/或错误消息吗?@hvd是的,这是我想的,这是问题标题中的一件事,与问题主体完全不同。你试图调用一个静态方法,就像它是一个实例方法一样。所以正确的方法是什么?:-)我无法从你的代码中理解GetAllShortCodes是否应该是静态的,但你应该像调用实例那样调用它。GetAllShortCodes()
如果它是实例,或者定义它
静态的
你的问题不应该导致你得到的错误。标题中的错误是调用静态方法,就像调用实例方法一样。您在代码中所做的是调用实例方法,就好像它是静态方法一样。你能检查一下你是否复制了错误的代码和/或错误消息吗?@hvd是的,这是我想的,这是问题标题中的一件事,与问题主体完全不同。你试图调用一个静态方法,就像它是一个实例方法一样。所以正确的方法是什么?:-)我无法从你的代码中理解GetAllShortCodes是否应该是静态的,但你应该像调用实例那样调用它。GetAllShortCodes()
如果它是实例,或者定义它
静态的
你的问题不应该导致你得到的错误。标题中的错误是调用静态方法,就像调用实例方法一样。您在代码中所做的是调用实例方法,就好像它是静态方法一样。你能检查一下你是否复制了错误的代码和/或错误消息吗?@hvd是的,这是我想的,这是问题标题中的一件事,与问题正文完全不同,好吧,那么正确的称呼方法是什么?我已经尝试在GetAllShortCodes中添加“static”。那也不行。@CaseyCrookston“那也不行”撒谎。肮脏的谎言。证明我错了!您应该了解实例成员和静态成员之间的区别。我对新的C#dev的建议是通过C#获取CLR。跳过第一章和第二章,开始阅读第三章。你很快就会在比赛中领先。嗯。。。看那个。当我向类方法添加“static”时,最初错误仍然存在,但后来我进行了构建,它就消失了。你是对的:-)好的,那么正确的称呼是什么?我已经尝试在GetAllShortCodes中添加“static”。那也不行。@CaseyCrookston“那也不行”撒谎。肮脏的谎言。证明我错了!您应该了解实例成员和静态成员之间的区别。我对新的C#dev的建议是通过C#获取CLR。跳过第一章和第二章,开始阅读第三章。你很快就会在比赛中领先。嗯。。。看那个。当我向类方法添加“static”时,最初错误仍然存在,但后来我进行了构建,它就消失了。你是对的:-)好的,那么正确的称呼是什么?我已经尝试在GetAllShortCodes中添加“static”。那也不行。@CaseyCrookston“那也不行”撒谎。肮脏的谎言。证明我错了!您应该了解实例成员和静态成员之间的区别。我对新的C#dev的建议是通过C#获取CLR。跳过第一章和第二章,开始阅读第三章。你很快就会在比赛中领先。嗯。。。看那个。当我向类方法添加“static”时,最初错误仍然存在,但后来我进行了构建,它就消失了。你是对的:-)好的,那么正确的称呼是什么?我已经尝试在GetAllShortCodes中添加“static”。那也不行。@CaseyCrookston“那也不行”撒谎。肮脏的谎言。证明我错了!您应该了解实例成员和静态成员之间的区别。我对新的C#dev的建议是通过C#获取CLR。