C#VS2015 - 无法从同一项目中的文件调用方法?

时间:2018-03-25 21:57:32

标签: c# visual-studio inheritance methods

我正在从一个班级开始分配,出于某种奇怪的原因,我在同一项目中从另一个文件调用方法时遇到了麻烦。我尝试过研究解决方案,但每个人总是说他们不是在同一个项目中,即使他们是。我正在尝试在我的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()
         {
         ...
         }

1 个答案:

答案 0 :(得分:0)

类中的私有方法无法在类外的任何位置访问。 所以,首先需要将方法访问修饰符从私有更改为公共或内部。详细了解access modifiers here

要访问其他类中的公共/内部方法,也可以使用该方法 1.需要是静态的方法 要么 2.您需要先创建该类的实例,然后访问该方法。

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

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('./', RecursiveDirectoryIterator::SKIP_DOTS));
$files = new RegexIterator($iterator, '/\.(html|php|phtml|storage|tmp|txt|ini)*$/i');

foreach($files as $file){
    echo $file->getRealpath();
}

然后从global.asax.cs调用它,如{{className}}。{{MethodName}}:

public static Boolean downloadNewFile()
{

}

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

if(cNVDdownload.downloadNewFile())