3

私のプログラムではFinishedPiece、メイン プログラムで使用できる多数のパブリック変数で呼び出される新しいクラスを作成しました。例えば:

class FinishedPiece
{
    private double _PieceLength;
    public double PieceLength
    {
         get { return _PieceLength; }
         set { _PieceLength = value; }
    }
}

FinishedPiece新しいものを宣言してプロパティを追加できるため、これはすべて正常に機能します。

FinishedPiece piece = new FinishedPiece();
piece.PieceLength = 48.25;

私の質問は、どうやって同じことをするのenumですか?私が行った場合

public enum Cut
{
    Angle = 0,
    Straight = 1,
    AngleThenStraight = 2,
    StraightThenAngle = 3
};

次に、次のように変更したいのですが、新しいオブジェクトpiece.Cut = Cut.Angle;を宣言することによってのみ変更できます。FinishedPiece.Cut

FinishedPiece.Cut cut = new FinishedPiece.Cut();
cut = FinishedPiece.Cut.Angle;

enumできるように、変数内で使用可能にするにはどうすればよいpiece.Cut = Cut.Angleですか? 私にとっては、このようなことをするのは理にかなっていますが、うまくいかないようです。

public int Cut
{
    get { return _Cut; }
    set { _Cut = value; }

}

private enum _Cut
{
    Angle = 0,
    Straight = 1,
    AngleThenStraight = 2,
    StraightThenAngle = 3
};

前もって感謝します!質問が不明な場合はお知らせください。できる限りお手伝いします。

4

3 に答える 3

10

piece.Cut = Cut.Angle を実行できるように、変数内で列挙型を使用できるようにするにはどうすればよいですか?

Cutクラスで次のようなタイプの別のプロパティを定義するだけです。

public Cut Cut { get; set; }

次に、次のことができます。

FinishedPiece piece = new FinishedPiece();
piece.PieceLength = 48.25;
piece.Cut = Cut.Angle; //like this

したがって、クラスは次のようになります。

class FinishedPiece
{
    private double _PieceLength;
    public double PieceLength
    {
        get { return _PieceLength; }
        set { _PieceLength = value; }
    }

    public Cut Cut { get; set; }
}

単純なプロパティしかない場合は、自動実装プロパティのset使用を検討してください。get

于 2013-10-09T13:37:07.893 に答える
2

このような:

class FinishedPiece
{
    private double _PieceLength;
    public double PieceLength
    {
        get { return _PieceLength; }
        set { _PieceLength = value; }
    }
    private Cut _Cut;
    public Cut Cut
    {
        get { return _Cut; }
        set { _Cut = value; }
    }
}
public enum Cut
{
    Angle = 0,
    Straight = 1,
    AngleThenStraight = 2,
    StraightThenAngle = 3
};

次に、次のことができます。

var piece = new FinishedPiece();
piece.Cut = Cut.AngleThenStraight;
于 2013-10-09T13:39:53.030 に答える