Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我不能访问这些属性?_C#_Visual Studio - Fatal编程技术网

C# 为什么我不能访问这些属性?

C# 为什么我不能访问这些属性?,c#,visual-studio,C#,Visual Studio,我在将属性从一个类传递到另一个类时遇到问题。 我得到一个错误,说第二个类中的所有游戏属性都需要对象引用。它们在底部高亮显示。 这是我的第一节课(游戏): 我的第二堂课(InsertFunOOUI) …你明白了。游戏是一种类型。一节课。您需要创建它的一个实例: Game g = new Game(); 然后才使用: g.Verb 等等。您需要设置一个游戏实例才能使用它,除非您希望它是一个静态类 Game game = new Game(); game.InScreen(); 诸如此类?首

我在将属性从一个类传递到另一个类时遇到问题。 我得到一个错误,说第二个类中的所有游戏属性都需要对象引用。它们在底部高亮显示。 这是我的第一节课(游戏):

我的第二堂课(InsertFunOOUI)


…你明白了。

游戏是一种类型。一节课。您需要创建它的一个实例:

Game g = new Game();
然后才使用:

g.Verb

等等。

您需要设置一个游戏实例才能使用它,除非您希望它是一个静态类

 Game game = new Game();
 game.InScreen();

诸如此类?

首先创建一个游戏实例,如@ispiro所说。您需要这样做一次(如果可能,主要是这样)。然后创建一个类诗的实例。如果可能的话,使用依赖注入并将游戏对象的属性作为参数而不是整个对象传递进来。我甚至会在Poem类中创建一个方法来处理控制台输出。根据您的喜好调整此代码:

public void main()
{
    var game = new Game();
    var poem = new Poem();
    poem.Output(game.Verb, game.Adjective);
}

public class Poem()
{
    public void Output(string verb, string adjective)
    {
        // your console writeline code
    }
}

你需要你的
游戏
类的一个实例来访问它的属性…看,我试过了…但是当创建一个新实例时,它会返回并重新运行该方法。如果没有它再次运行相同的方法,我不知道如何实例化它。我想我也可以解释一下。Game类最初是在Main方法中实例化的。一旦运行,它就被交给InsertFunOOUI类。这就是我需要访问属性的地方只应调用一次。根据您的评论,在
Main
中。然后需要将该实例传递到
InsertFunOOUI
,并在那里使用。事实上,这就是你在上次评论中写的。这应该行得通,谢谢你的回应。是的,我就是这么做的。但因为它已经在Main中被调用,然后被传递到另一个类并再次调用,所以它运行了两次。我是不是遗漏了什么?@MichaelM
又打了一次电话
-你这是什么意思?您是否记得将
Poem()
中的所有
Game
更改为
g
(或您正在使用的变量名)?
 Game game = new Game();
 game.InScreen();
public void main()
{
    var game = new Game();
    var poem = new Poem();
    poem.Output(game.Verb, game.Adjective);
}

public class Poem()
{
    public void Output(string verb, string adjective)
    {
        // your console writeline code
    }
}