一个方法在同一名称空间中看不到另一个方法

本文关键字:方法 空间 看不到 另一个 一个 一名 | 更新日期: 2023-09-27 18:08:17

为什么会出现这些错误,如何修复它们?

错误1期望的类、委托、枚举、接口或结构C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'DAL.cs 9 19 EnterData

错误2期望的类、委托、枚举、接口或结构C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'DAL.cs 1154 EnterData

错误3期望类、委托、枚举、接口或结构C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'DAL.cs 25 23 EnterData

错误4期望的类、委托、枚举、接口或结构C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'DAL.cs 27 57 EnterData

错误5类型或命名空间定义,或文件结束预期C:'Documents and Settings'agordon'My Documents'Visual Studio 208'Projects'lomdb'EnterData'DataEntry'DAL.cs 39 9 EnterData

错误8 'PopulateMainForm'名称在当前上下文中不存在C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'WebForm1.aspx.cs 25 53 EnterData

错误9 'PopulateBatchTable'名称在当前上下文中不存在C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'WebForm1.aspx.cs 26 50 EnterData

错误10 'PopulateProblemTable'名称在当前上下文中不存在C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'WebForm1.aspx.cs 27 54 EnterData

错误11 'PopulateSpecimenTable'名称在当前上下文中不存在C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'WebForm1.aspx.cs 28 56 EnterData

我将illist类保存在同一个目录下名为DAL.cs的文件中:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RadarGraphInsertDLL;
namespace EnterData.DataEntry
{
    public static IList<LOMDLL.Lom_Batch> PopulateBatchTable()
        {
            IList<LOMDLL.Lom_Batch> BatchTable = new IList<LOMDLL.Lom_Batch>();
            try 
            {
            
            }
            catch (Exception e)
            {
            }
            return BatchTable;
        }
        public static IList<LOMDLL.Lom_Problem> PopulateProblemTable()
        {
            IList<LOMDLL.Lom_Problem ProblemTable = new IList<LOMDLL.Lom_Problem();
            try
            {
            }
            catch (Exception e)
            {
            }
            return ProblemTable;
        }
        public static IList<LOMDLL.Lom_Specimen> PopulateSpecimenTable()
        {
            IList<LOMDLL.Lom_Specimen SpecimenTable = new IList<LOMDLL.Lom_Specimen();
            try
            {
            }
            catch (Exception e)
            {
            }
            return SpecimenTable;
        }
        public static LOMDLL.Main_Lom_Form PopulateMainForm()
        {
            //populate class
            LOMDLL.Main_Lom_Form TheForm = new LOMDLL.Main_Lom_Form();
            try
            {
                TheForm.lom_number = lom_numberTextBox.Text.ToInt();
                TheForm.identified_by = identified_byTextBox.Text;
                TheForm.occurrence_date = occurrence_dateTextBox.Text.ToDateTime();
                //TheForm.pre_contact = pre_contactTextBox.Text; //need to create this texdtbox
                //TheForm.pre_practice_code = pre_practice_codeTextBox.Text; //create this
                TheForm.report_by = report_byTextBox.Text;
                TheForm.report_date = report_dateTextBox.Text.ToDateTime();
                TheForm.section_c_comments = section_c_commentsTextBox.Text;
                TheForm.section_c_issue_error_identified_by = section_c_issue_error_identified_byTextBox.Text;
                TheForm.section_d_investigation = section_d_investigationTextBox.Text;
                TheForm.section_e_corrective_action = section_e_corrective_actionTextBox.Text;
                TheForm.section_f_comments = section_f_commentsTextBox.Text;
            }
            catch(Exception e)
            {
                
            }
            return TheForm;
        }
}

一个方法在同一名称空间中看不到另一个方法

您的代码无效。不能在命名空间范围内声明方法,它们必须驻留在类(或其他类型)定义中。

namespace EnterData.DataEntry
{
    public class Foo
    {
        public static IList<LOMDLL.Lom_Batch> PopulateBatchTable()
        {
            // code here...
        }
    }
}

DAL.cs有一个直接包含方法声明的命名空间。命名空间不能包含方法声明。名称空间允许包含类、委托、枚举、接口、结构或其他名称空间。因此,错误消息是期望使用类、委托、枚举、接口或结构。

你需要的是一个静态类:
namespace DataEntry
{
     static class MyClass
     {
         public static IList<LOMDLL.Lom_Batch> PopulateBatchTable() 
         { ... }
     }
}

然后调用MyClass.PopulateBatchTable()

在DAL.cs中你缺少一个类声明:

namespace EnterData.DataEntry
{
   public static class DAL // Add Class Here
   {
      public static IList<LOMDLL.Lom_Batch> PopulateBatchTable()
      {
然后在你的webform中,你需要使用类名来调用静态函数
...
protected void SubmitData(object sender, EventArgs e)
{
   LOMDLL.Main_Lom_Form MainLomFormTable = DAL.PopulateMainForm(); // Add DAL.

不能在类定义之外声明函数。您所做的是声明一组没有类定义的函数。

这通常以模块的形式在Visual Basic中工作(在非。net世界中)。

既然,我不能评论第一个答案,我只是发布一个新的答案。