我无法从我的某个课程中访问某些内容并在另一个课程中使用它。当我输入对象的名称时,我不知道我在谈论什么。我如何在课程之间阅读?
我的代码: 在第一堂课:
public class Form1
{
public struct TriangleDrawer
{
// ...
public Color Vert1Color;
// ...
}
TriangleDrawer myTriangle = new TriangleDrawer();
myTriangle.Vert1Color = Color.Red;
}
在第二节课中:
public class TriangleWindow: Form1
{
void WhateverVoid()
{
GL.Color3(myTriangle.Vert1Color);
}
}
Form1
不包含myTriangle.Vert1Color
答案 0 :(得分:0)
将myTriangle
设为公共/受保护的属性,默认为私有,即使使用子类也无法访问它
public class Form1
{
public TriangleDrawer MyTriangle { get; set; }
}
然后你可以这样做
public class TriangleWindow : Form1
{
void WhateverVoid()
{
GL.Color3(MyTriangle.Vert1Color);
}
}
答案 1 :(得分:0)
如果未指定访问修饰符(public,private等),则声明的成员将具有最严格的可能性。在这种情况下,myTriangle
将为private
,这意味着只有自己的类才能访问它。
如果希望派生类访问它,则必须将其声明为protected
。当然,如果你希望全世界都能访问它,请声明它public
,但要注意,这对你的代码不是一个好主意。您应该使用访问器(get
和set
),以便您可以控制该变量的内容。基本上,如果你把它public
,然后它的价值不是你想象的那么,那就更难找出原因。
您应阅读的一些链接:
答案 2 :(得分:0)
您必须将'myTriangle'字段声明为public才能从另一个类访问它。如果两个类都在同一名称空间中,则将其声明为内部。