【问题标题】:C# VS2015 - Can't call method from file in same project?C# VS2015 - 不能从同一个项目的文件中调用方法?
【发布时间】:2018-09-04 00:04:26
【问题描述】:

我现在正在处理一个班级的作业,由于某种奇怪的原因,我无法从同一个项目的另一个文件中调用方法。我尝试过研究解决方案,但每个人总是说他们不在同一个项目中,即使他们是。我正在尝试在我的 Global.asax.cs 文件中的项目中使用另一个 .cs 文件中的方法,所以我不知道这是否是问题所在。我确信我正确地完成了所有继承,并且所有内容都在同一个命名空间中。

Global.asax 文件:

<%@ Application Language="C#" CodeBehind="~/App_Code/global.asax.cs" 
Inherits="Global" %>

<script runat="server">
---------------------------
---------------------------
---------------------------
</script>

Global.asax.cs 文件的标题:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.IO;
using System.IO.Compression;
using System.Threading;
using System.Diagnostics;

namespace nvdWebService
{
     public class nvdTimer : System.Web.HttpApplication
     ....
     if(downloadNewFile()) /**method I'm trying to call**/

我正在尝试从以下位置调用方法的文件:

namespace nvdWebService
{
    public class cNVDdownload
    { ....
         private Boolean downloadNewFile()
         {
         ...
         }

【问题讨论】:

  • 你试过什么?贴出代码。重要的是不仅要知道您要完成什么,而且要知道如何完成。 .cs 文件和 Global.asax.cs 代码很重要。
  • 如果你能用一个例子来解释这一点会更清楚,特别是发生了什么。另外,文件可能在项目文件夹中,但文件引用可能不在项目中,或者您移动了文件,现在需要重新配置文件引用。
  • 刚刚更新
  • 不能在没有实例的情况下调用类的(非static)方法,也不能在类本身之外调用private方法

标签: c# visual-studio inheritance methods


【解决方案1】:

类中的私有方法不能在类外的任何地方访问。 因此,首先需要将方法访问修饰符从私有更改为公共或内部。阅读有关access modifiers here 的更多信息。

要访问不同类中的公共/内部方法,该方法要么 1.需要是静态方法 要么 2.需要先创建类的实例,再访问方法。

使方法静态:将方法签名更改为

public static Boolean downloadNewFile()
{

}

然后从 global.asax.cs 中,将其称为 {{className}}.{{MethodName}}:

if(cNVDdownload.downloadNewFile()) 

第二种选择是创建一个新的 cNVDdownload 类实例,然后访问如下方法:

var cNV = new cNVDdownload();
if (cNV.downloadNewFile())
{
}

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多