一个方法在同一名称空间中看不到另一个方法
本文关键字:方法 空间 看不到 另一个 一个 一名 | 更新日期: 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世界中)。
既然,我不能评论第一个答案,我只是发布一个新的答案。