簡體   English   中英

無法從C#ASP.NET中的類調用方法

[英]Cannot call a method from a class in C# ASP.NET

我開設了以下課程:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ESROWCFData
{

 public class ESROWFCData
 {
    public string GetNCAMSData()
     {
        //int iOffset = 0, iTake = 0;
        string strOffset = "iOffset", strTake = "iTake";

        string strNCAMS = "SELECT * FROM[HRO_REPORTS].[dbo].NCAMS WHERE DATEPART(YEAR, VisitStartDate) = DATEPART(YEAR, GetDate()) ORDER BY VisitorID OFFSET " + strOffset + " rows fetch next " + strTake + " rows only";

        return strNCAMS;
     }
 }
}

並包含了using ESROWCFData; 我的主程序中的語句,但是當我嘗試調用GetNCAMSData()函數時,它沒有顯示,並且出現錯誤,提示該語句不存在。 我顯然做錯了什么,但我看不到它是什么。

您在這里有兩個選擇。 您可以將方法設為靜態,這樣就可以通過將簽名更改為以下方式來調用它而無需創建類的實例:

public static string GetNCAMSData()

然后這樣稱呼它:

var result = ESROWFCData.GetNCAMSData()

或者您可以創建該類的新實例,然后按如下所示將其取消

var instance = new ESROWFCData(); 
var result = instance.GetNCAMSData()

首先,您必須創建ESROWFCData類的實例:

ESROWFCData data = new ESROWFCData();

然后使用它:

string s = data.GetNCAMSData();

首先,您的名稱空間和類名稱相同:

namespace ESROWCFData
{
    public class ESROWFCData
    {
        ...

因此,即使您想在外部使用此類,也必須使用完整類型名稱:

ESROWCFData.ESROWCFData data = new ESROWCFData.ESROWCFData();

如果您試圖像這樣使用它:

ESROWCFData data = new ESROWCFData();

然后,由於該名稱空間名稱,編譯器感到困惑。
考慮對名稱空間或類進行名稱更改以解決該問題。 有關該問題的更多信息


另一個問題是(我們不太了解的問題)您如何嘗試調用該對象的方法。 如果您只想靜態使用它們,請將其標記為static:

namespace ESROWCFData
{
    public class ESROWCFData
    {
        public static string GetNCAMSData()
        {
            ...

您可以像這樣調用它們: ESWROWCFData.ESWROWCFData.GetNCAMSData()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM