我是C#的新手,我正在学习它,它只是一个虚拟测试程序。我收到了这篇文章标题中提到的错误。下面是C#代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace DriveInfos
{
class Program
{
static void Main(string[] args)
{
Program prog = new Program();
prog.propertyInt = 5;
Console.WriteLine(prog.propertyInt);
Console.Read();
}
class Program
{
public int propertyInt
{
get { return 1; }
set { Console.WriteLine(value); }
}
}
}
}
答案 0 :(得分:7)
执行此操作时:
Program prog = new Program();
C#编译器无法判断您是否要在此使用Program
:
namespace DriveInfos
{
class Program // This one?
{
static void Main(string[] args)
{
或者,如果您的意思是使用Program
的其他定义:
class Program
{
public int propertyInt
{
get { return 1; }
set { Console.WriteLine(value); }
}
}
这里最好的办法是更改内部类的名称,它将为您提供:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace DriveInfos
{
class Program
{
static void Main(string[] args)
{
MyProgramContext prog = new MyProgramContext();
prog.propertyInt = 5;
Console.WriteLine(prog.propertyInt);
Console.Read();
}
class MyProgramContext
{
public int propertyInt
{
get { return 1; }
set { Console.WriteLine(value); }
}
}
}
}
所以现在没有混淆 - 不是为了编译器,也不是为了你在6个月后回来并尝试弄清楚它在做什么!
答案 1 :(得分:2)
你有两个同名的课程“程序”重命名其中一个
namespace DriveInfos { class Program { static void Main(string[] args) { Program prog = new Program(); prog.propertyInt = 5; Console.WriteLine(prog.propertyInt); Console.Read(); } class Program1 { public int propertyInt { get { return 1; } set { Console.WriteLine(value); } } } } }