这是我使用它的程序,叫做Time2 我将参考添加到TimeTest 我一直得到错误'Time2'是'命名空间',但用作'类型'
有人可以告诉我这个错误是什么以及如何修复它?
namespace TimeTest
{
class TimeTest
{
static void Main(string[] args)
{
Time2 t1 = new Time2();
}
}
}
答案 0 :(得分:84)
我怀疑你遇到了同样的问题至少两次。
下面:
namespace TimeTest
{
class TimeTest
{
}
...您声明的类型与其所在的命名空间同名。Don't do that.
现在你显然遇到与Time2
相同的问题。如果你添加:
using Time2;
到你的using
指令列表,你的代码将编译。但请拜托,请解决更大的问题:有问题的名字选择。 (按照上面的链接查找为什么这是一个坏主意的更多细节。)
(另外,除非你真的对编写基于时间的类型感兴趣,否则我建议你不要这样做......我说那些做的人就是这么做的。使用内置功能或第三方库,例如,嗯,mine。正确使用日期和时间是非常毛茸茸的。:)
答案 1 :(得分:14)
Private Sub btnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click
If cmbPortal.Text.Length = 0 Then
MessageBox.Show("Select portal to process first", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
Select Case cmbPortal.Text
Case "Robinsons"
FileFilter = "Portable Document File (*.pdf)|*.pdf"
txtFilePath.Text = parse.showdialog(FileFilter)
If txtFilePath.Text = Nothing Then
MessageBox.Show("No file was selected", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Case "Waltermart"
FileFilter = "Portable Document File (*.pdf)|*.pdf"
txtFilePath.Text = parse.showdialog(FileFilter)
If txtFilePath.Text = Nothing Then
MessageBox.Show("No file was selected", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Case "7-11"
Dim OpenFileDialog1 As New OpenFileDialog
With OpenFileDialog1
.FileName = "Excel File"
.Title = "Open File"
.InitialDirectory = "C:\User\Desktop"
.Filter = "EXCEL|*.xls;*.xlsx;*.xlsm;*.xlsb"
.FilterIndex = 1
End With
If OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
Me.Cursor = Cursors.WaitCursor
Try
Dim FileName As String = OpenFileDialog1.FileName
Dim strConnString As String
strConnString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & FileName & ";"
Dim strSQL As String
strSQL = "SELECT * FROM [Sheet1$]"
Dim y As New Odbc.OdbcDataAdapter(strSQL, strConnString)
y.Fill(RetVal)
txtFilePath.Text = FileName
Catch
MessageBox.Show("An Error Occurred, Please Contact MIS for Assistance", "SYSTEM", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Me.Cursor = Cursors.Default
ElseIf txtFilePath.Text = Nothing Then
MessageBox.Show("No file was selected", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Me.Cursor = Cursors.Default
End Select
If txtFilePath.Text.Length = 0 Then
btnSelect.Enabled = True
btnConvert.Enabled = False
cmbPortal.Enabled = True
Else
btnSelect.Enabled = False
btnConvert.Enabled = True
cmbPortal.Enabled = False
End If
End If
End Sub
从namepsace中删除控制器字
答案 2 :(得分:2)
如果您正在使用大型应用程序并且无法更改任何名称,则可以键入.
从名称空间中选择所需的类型:
namespace Company.Core.Context{
public partial class Context : Database Context {
...
}
}
...
using Company.Core.Context;
someFunction(){
var c = new Context.Context();
}
答案 3 :(得分:1)
我在名为“ Response”的文件夹内创建一个类“ Response.cs”时遇到了此问题。因此VS捕获new Response ()
作为文件夹/命名空间。
因此我将类名称更改为StatusResponse.cs并命名为new StatusResponse()
。这解决了该问题。
答案 4 :(得分:1)
所有答案都指出了原因,但有时更大的问题是确定所有定义不正确名称空间的位置。借助Resharper之类的工具,可以使用文件夹结构自动调整名称空间,因此很容易遇到此问题。
通过使用以下正则表达式在项目/解决方案中进行搜索,您可以获得引起问题的所有行:
namespace .+\.TheNameUsedAsBothNamespaceAndType
答案 5 :(得分:0)
请检查您的类和名称空间名称是否相同...
当名称空间和类名称相同时会发生。 当您想使用名称空间时,要做一件事写名称空间的全名。
using Student.Models.Db;
namespace Student.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
List<Student> student = null;
return View();
}
}
答案 6 :(得分:0)
class TimeTest
与 namespace TimeTest
冲突。
如果不能更改命名空间和类名:
为类类型创建别名。
using TimeTest_t = TimeTest.TimeTest;
TimeTest_t s = new TimeTest_t();
答案 7 :(得分:-1)
如果错误是
第26行:
第27行:@foreach(模型中的Customer客户)
第28行:{
第29行:
提供全名空间
喜欢
@foreach(模型中的Start.Models.customer客户)