编译错误CS0176(无法访问静态成员)非静态方法

时间:2017-06-08 14:10:28

标签: c# visual-studio-2017

我的问题如下:

当我尝试编译我的c#apps时,它会遇到这个异常:

  

静态成员' ResponseManager.manage(响应)'无法访问   带有实例引用;使用类型名称来限定它

在此

ResponseManager responseManager = new ResponseManager();
responseManager.manage(response);

正如您所看到的,我正在使用ResponseManager的新实例。

这是他的"管理"方法的声明:

public void manage(Response response)

我检查了项目,它是唯一使用此名称的方法,她不是静态的,ResponseManager没有任何静态字段/方法,但它不会编译。

当我尝试在我的代码(声明和用法)中的任何地方重命名我的方法时,我收到以下错误:

  

ResponseManager不包含' sometest'的定义。和不   扩展方法' sometest'接受第一个类型的参数   ' ResponseManager'可以找到(你错过了使用   指令或程序集引用?)

我希望我提供了一些信息来帮助我解决这个问题。 非常感谢 !

编辑:

public class ResponseManager
{

    TransactionDAO transactionDAO = new TransactionDAO();
    LignesDAO ligneDAO = new LignesDAO();
    SimDAO simDAO = new SimDAO();
    MailSender mailSender = new MailSender();
    HttpClient httpClient = new HttpClient();
    ApplicationDAO appDAO = new ApplicationDAO();


    //RENAME !!!!!!!!  
    public void manage(Response response)
    {

        if (response.responseStatus.status == "SUCCESS")
        {
            transactionDAO.updateTransactionById(response.header.transactionId, response.responseStatus.status);

            string type = transactionDAO.getTransactionTypeById(response.header.transactionId);

            if(type != null) { 

                switch (type) {
                    case "activate":
                        ligneDAO.setActivatedSim(response.simIdendity.simSerial);
                        //simDAO.setActivatedSim(response.simIdendity.simSerial);


                        break;
                    case "suspend":
                        ligneDAO.setSuspendedSim(response.simIdendity.simSerial);
                        //simDAO.setSuspendedSim(response.simIdendity.simSerial);


                        break;
                    case "reactivate":
                        ligneDAO.setActivatedSim(response.simIdendity.simSerial);
                        //simDAO.setActivatedSim(response.simIdendity.simSerial);

                        break;
                    case "detail-subscription":

                        break;
                    case "detail-sim":
                        //Mapping between Response and Sim classes


                        break;
                    case "bar" :

                        break;
                    case "unbar" :

                        break;
                }
            }

            int appId = transactionDAO.getIdAppFromTransactionId(response.header.transactionId);

            string url = appDAO.getUrlFromAppId(appId);

            httpClient.send(null, url);

        }
        else 
        {
            transactionDAO.updateTransactionById(response.header.transactionId, response.responseStatus.status, response.responseStatus.errorCode);

            string type = transactionDAO.getTransactionTypeById(response.header.transactionId);

            mailSender.createTransatelProvisionningErrorMail(response.header.transactionId, response.simIdendity.simSerial, response.simIdendity.msisdn, type, response.responseStatus.errorCode, response.responseStatus.reason);
        }

    }

}

2 个答案:

答案 0 :(得分:1)

您可以尝试做一个干净的解决方案。构建>清洁解决方案。

您还可以尝试删除解决方案中的所有obj文件夹并重建解决方案。

答案 1 :(得分:0)

如果您确定问题与您的代码无关,请尝试卸载和重新加载项目或重新启动VS2017。它有时解决了这个问题。请提供RespnseManager的代码。