Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取公共对象上的可访问性错误_C#_Asp.net - Fatal编程技术网

C# 获取公共对象上的可访问性错误

C# 获取公共对象上的可访问性错误,c#,asp.net,C#,Asp.net,下面是DataUtility: namespace MyApp.MyNamespace { public class MyClass:System.Web.UI.Page { private DataUtility Util = new DataUtility(); private CookieData cd = MyClass.Toolbox.GetCurrentCookieData(HttpContext.Current); /

下面是DataUtility:

namespace MyApp.MyNamespace
{
    public class MyClass:System.Web.UI.Page
    {
        private DataUtility Util = new DataUtility();
        private CookieData cd = MyClass.Toolbox.GetCurrentCookieData(HttpContext.Current);
        //below I get the error: "System.Web.UI.Util is unavailable due to its protection level"
        private int CompanyID = Util.GetCompanyIDByUser(cd.Users);

    protected override void OnLoad(EventArgs e)
    {
        //I'd like to use CompanyID here
    }           

    protected void MyEventHandler(object sender, EventArgs e)
    {
        //as well as here
    }
}

我已经看过了,DataUility及其内部的方法被声明为public,因此我不确定为什么会出现此错误。

字段初始值设定项无法引用其自身类成员的非静态成员。如果将
Util=new DataUtility()
cd=…
和C
ompanyID=…
移动到默认构造函数中,我相信您的代码可以工作。

字段初始值设定项不能引用它自己的类成员的非静态成员。如果将
Util=new DataUtility()
cd=…
和C
ompanyID=…
移动到默认构造函数中,我相信您的代码可以工作。

您不能在字段初始值设定项中引用类的实例字段

Move
cd=Util.GetCompanyIDByUser(cd.Users)到类构造函数,它将工作


您收到看似不正确的错误消息的原因是您的Util字段与.Net framework中的内部类型冲突。如果将
Util
重命名为
Util
(小写
u
),则会得到更正确的错误消息(但这不会解决问题,除非将方法调用移动到
MyClass
构造函数,如上所述)。

不能在字段初始值设定项中引用类的实例字段

Move
cd=Util.GetCompanyIDByUser(cd.Users)到类构造函数,它将工作


您收到看似不正确的错误消息的原因是您的Util字段与.Net framework中的内部类型冲突。如果您将
Util
重命名为
Util
(小写
u
),您将得到一条更正确的错误消息(但这不会解决问题,除非您将方法调用移动到
MyClass
构造函数,如上所述)。

我刚刚将静态关键字添加到DataUtility初始值设定项中,所有操作都非常有效。谢谢大家。:)

我刚刚在DataUtility初始值设定项中添加了静态关键字,一切都很顺利。谢谢大家。:)

我在MyClass(){//here}之间添加了所有这些,但遇到了相同的错误。我在MyClass(){//here}之间添加了所有这些,但遇到了相同的错误。
public class DataUtility
{
    public DataUtility() {}
    //snip
    public int GetCompanyIDByUser(int UserID)
    {
        //snip
    }
}