C# 面向对象

C# 面向对象,c#,class,C#,Class,我有以下代码: public class Game { public Game(int board) { } public List<int> play(List<int> lines) { return lines; } } 有没有一种方法可以在“play”方法中检索(并使用)这个参数,而不在这两个方法之外声明任何其他变量,或

我有以下代码:

  public class Game
    {
        public Game(int board)
        {

        }

        public List<int> play(List<int> lines)
        {
            return lines;
        }
    }
有没有一种方法可以在“play”方法中检索(并使用)这个参数,而不在这两个方法之外声明任何其他变量,或者也不定义任何其他方法


任何帮助都将不胜感激。谢谢。

您可以定义
专用int板int类型的成员,并将线路板的值分配给它。然后您可以在play方法中访问它。

您可以定义一个
专用int板int类型的成员,并将线路板的值分配给它。然后您可以在play方法中访问它。

公共类游戏{
public class Game { 

    private int Board;
    public Game(int board) {
        Board = board;
    }

    public List<int> play(List<int> lines)
    { 
        //used board here
        return lines;
    }
}
私人董事会; 公共游戏(智力板){ 董事会=董事会; } 公共列表播放(列表行) { //这里用过木板 回流线; } }
只需创建一个变量
Board
,该变量可通过play方法访问

公共类游戏{
私人董事会;
公共游戏(智力板){
董事会=董事会;
}
公共列表播放(列表行)
{ 
//这里用过木板
回流线;
}
}

只需创建一个变量
Board
,该变量可以通过play方法访问将
Board
声明为类中的成员,以便所有函数都可以访问它。也许是这样的:

public class Game 
{
    private int board;

    // Constructor for game. Initializes a new board
    public Game(int board) 
    {
        this.board = board
    }

    public List<int> play(List<int> lines)
    {
        // Access board
        return lines;
    }
}
公共类游戏
{
私人董事会;
//游戏的构造函数。初始化一个新的棋盘
公共游戏(智力板)
{
这个板
}
公共列表播放(列表行)
{
//通道板
回流线;
}
}

声明为类中的成员,以便所有函数都可以访问它。也许是这样的:

public class Game 
{
    private int board;

    // Constructor for game. Initializes a new board
    public Game(int board) 
    {
        this.board = board
    }

    public List<int> play(List<int> lines)
    {
        // Access board
        return lines;
    }
}
公共类游戏
{
私人董事会;
//游戏的构造函数。初始化一个新的棋盘
公共游戏(智力板)
{
这个板
}
公共列表播放(列表行)
{
//通道板
回流线;
}
}

您需要将其存储在类成员变量中,如

public class Game
{
private int board;
    public Game(int board)
    {
       this.board = board;
    }

    public List<int> play(List<int> lines)
    {
        return lines[board];
    }
}
公共类游戏
{
私人董事会;
公共游戏(智力板)
{
this.board=董事会;
}
公共列表播放(列表行)
{
返回线路[板];
}
}

您需要将其存储在类成员变量中,如

public class Game
{
private int board;
    public Game(int board)
    {
       this.board = board;
    }

    public List<int> play(List<int> lines)
    {
        return lines[board];
    }
}
公共类游戏
{
私人董事会;
公共游戏(智力板)
{
this.board=董事会;
}
公共列表播放(列表行)
{
返回线路[板];
}
}
公共类游戏{
私人国际委员会;
公共游戏(智力板){
_董事会=董事会;
}
公共列表播放(列表行)
{
//在这里使用黑板,例如:这个。。。
回流线;
}
}
公共类游戏{
私人国际委员会;
公共游戏(智力板){
_董事会=董事会;
}
公共列表播放(列表行)
{
//在这里使用黑板,例如:这个。。。
回流线;
}
}
定义一个函数来保存通过构造函数传递的值。然后在您的播放方法中访问此字段:

public class Game { 
    private readonly int _Board;
    public Game(int board) {
        _Board = board;
    }

    public List<int> play(List<int> lines)
    {
        //access field here
        var board = _Board;
        return lines;
    }
}
公共类游戏{
专用只读int_板;
公共游戏(智力板){
_董事会=董事会;
}
公共列表播放(列表行)
{
//这里是访问字段
var板=_板;
回流线;
}
}
定义一个函数来保存通过构造函数传递的值。然后在您的播放方法中访问此字段:

public class Game { 
    private readonly int _Board;
    public Game(int board) {
        _Board = board;
    }

    public List<int> play(List<int> lines)
    {
        //access field here
        var board = _Board;
        return lines;
    }
}
公共类游戏{
专用只读int_板;
公共游戏(智力板){
_董事会=董事会;
}
公共列表播放(列表行)
{
//这里是访问字段
var板=_板;
回流线;
}
}
我建议声明属性并使用构造函数链接:

我建议声明属性并使用构造函数链接:


将其作为第二个参数传递给play方法,而不是传递给构造函数,因为您在构造函数中不使用它

public class Game  
{
    public Game() {}

    public List<int> play(List<int> lines, int board)
    {
        // do whatever you want to do with board here
        return lines;
    }
}
公共类游戏
{
公共游戏(){}
公共列表播放(列表行、int板)
{
//你想怎么做就怎么做
回流线;
}
}

将其作为第二个参数传递给play方法,而不是传递给构造函数,因为您在构造函数中不使用它

public class Game  
{
    public Game() {}

    public List<int> play(List<int> lines, int board)
    {
        // do whatever you want to do with board here
        return lines;
    }
}
公共类游戏
{
公共游戏(){}
公共列表播放(列表行、int板)
{
//你想怎么做就怎么做
回流线;
}
}

我相信答案的数量是由于您没有在问题“where”中澄清您想使用参数的值

如大多数人所怀疑的,如果您只想在类中使用它(比如说该类的任何方法),那么一个字段就足够了,您可以使用前面给出的任何答案。虽然我暗自喜欢@jon Lopez garcia的一款,只是因为它符合我的风格,并且没有额外的假设

另一方面,如果您需要从类的方法外部访问该值,那么属性是正确的方法。检查@dmitry bychenko的答案,答案非常完整,尽管做出了一些您没有提到的假设

然而,如果你想从外部访问它,那么你还必须考虑你是否想从外部更改它,因为在@dmitry bychenko的回答中,没有从外部更改(注意“private set;”)

在这里,我要做的就是不简短,因为没有上下文:

public class Game
{
    public int Board { get; private set; }
    public Game(int board)
    {
        Board = board;
    }

    public List<int> play(List<int> lines)
    {
        //use Board here
        return lines;
    }
}
公共类游戏
{
公共int板{get;private set;}
公共游戏(智力板)
{
董事会=董事会;
}
公共列表播放(列表行)
{
//在这里用黑板
回流线;
}
}
这些可能是本主题的好读物:

  • 了解有关属性的信息:
  • 了解字段:
  • 了解访问修饰符:

我相信答案的数量是由于您没有澄清