C# 在C中使用类的实例#
我对一个类实例有一些问题,不理解这个问题。我在不同的课程中使用彩色文本,因此我的想法是只定义一次颜色,这样更改颜色就容易多了 对于颜色的定义,我指定了一个名为MyColors的类。我使用System.Windows.Media并使用颜色类定义RGB颜色。我的想法是将每种颜色指定为privat,并添加一个属性,该属性生成对该颜色的读取权限,但VisualStudio向我发送了一个错误C# 在C中使用类的实例#,c#,class,colors,system.windows.media,C#,Class,Colors,System.windows.media,我对一个类实例有一些问题,不理解这个问题。我在不同的课程中使用彩色文本,因此我的想法是只定义一次颜色,这样更改颜色就容易多了 对于颜色的定义,我指定了一个名为MyColors的类。我使用System.Windows.Media并使用颜色类定义RGB颜色。我的想法是将每种颜色指定为privat,并添加一个属性,该属性生成对该颜色的读取权限,但VisualStudio向我发送了一个错误 namespace MyProject { class MyColor { private Color m
namespace MyProject
{
class MyColor
{
private Color myGreen = new Color();
myGreen = Color.FromRgb(0, 255, 0);
#region Properties
/// <summary>
/// Gets my green
/// </summary>
/// <value>my green</value>
static public Color MyGreen
{
get
{
return myGreen;
}
}
#endregion
}
}
名称空间MyProject
{
霉色类
{
私有颜色myGreen=新颜色();
myGreen=Color.FromRgb(0,255,0);
#区域属性
///
///得到我的绿色
///
///我的绿色
静态公共色MyGreen
{
得到
{
返回myGreen;
}
}
#端区
}
}
第六行“myGreen…”产生错误。如果我将代码更改为下面的代码,它就会工作
namespace MyProject
{
class MyColor
{
#region Properties
/// <summary>
/// Gets my green
/// </summary>
/// <value>my green</value>
static public Color MyGreen
{
get
{
Color myGreen = new Color();
myGreen = Color.FromRgb(0, 255, 0);
return myGreen;
}
}
#endregion
}
}
名称空间MyProject
{
霉色类
{
#区域属性
///
///得到我的绿色
///
///我的绿色
静态公共色MyGreen
{
得到
{
颜色myGreen=新颜色();
myGreen=Color.FromRgb(0,255,0);
返回myGreen;
}
}
#端区
}
}
谁能解释一下我做错了什么。看起来我对一个类的理解有误。我更喜欢您在第一次截取代码时使用的方法,因为它不需要每次访问
MyGreen
属性时都实例化一个新的Color
。但它包含一些错误:
MyGreen
属性为static
,则其getter(get{…}
)返回的底层实例也必须声明为static
Color()
构造函数,然后使用Color.FromRgb
,它基本上返回一个新的Color
实例和指定的RGB
值),因此所有内容都可以转换为一行代码,而无需更改所需的行为namespace MyProject
{
public class MyColor
{
private static Color s_MyGreen = Color.FromRgb(0, 255, 0);
public static Color MyGreen
{
get { return s_MyGreen; }
}
// ...
}
}
你不能只在类级别上放置任意代码,它需要在一个方法中代码>应
返回myGreen代码>。另一个错误是,System.Drawing.Color.Green
。Visual Studio发送错误:名称“myGreen”在当前上下文中不可用。(翻译自德语)抱歉,get中的返回myGreen实际上是以一个小字母开始的,myGreen是帖子中的一个错误。@TommasoBelluzzo请不要在这里要求接受/投票,这被认为是非常恶劣的行为。我认为,为了教育新用户,你这样做应该是可以的。通常,新用户在问题解决后关闭SO选项卡,留下他们的问题“未回答”,忘记奖励为帮助他们所做的任何努力。最重要的是,我并没有强迫他接受我的回答,我只是告诉他,如果他要找的话,就要接受。