0

私はプログラミングに慣れていないので、用語が何であるかわかりません。申し訳ありません。次のようなものを書けるようになりたいです。

Label Label1 = new Label();
Label1.Text = DateTime.Now.ToString("MM.dd.yyyy");

しかし、私自身のオブジェクトでは:

Reciept ReciptForAirPlaneTicket = new Reciept();
ReciptForAirPlaneTicket.MOP = MOP.CreditCard.Visa("4111111111111111|0815");

Reciept ReciptForFood = new Reciept();
ReciptForFood.MOP = MOP.CreditCard.MasterCard("4222222222222222|0917");

Reciept ReciptForClothes = new Reciept();
ReciptForClothes.MOP = MOP.Cash;

Reciept ReciptForTools = new Reciept();
ReciptForTools.MOP = MOP.Check("12345");

私は本当に怠惰になろうとしているわけではありませんが、ほぼ 1 日探していて、何を探すべきかさえわかりません。少なくともクラスだけでなく、構造体または列挙型と呼ばれるものも作成する必要があると思いますが、本当にわかりません。

私はC#を使用しています。

4

1 に答える 1

0

私には珍しいアプローチのように思えますが、正確な構文を取得するには、静的クラス MOP を使用して一種のファクトリ パターンを作成できます。

public class MethodOfPayment
{
    public enum enumCardType { Visa, Mastercard };
    public enum enumPaymentType { CreditCard, Cash };

    public string Number { get; set; }
    public enumPaymentType PaymentType { get; set; }
    public enumCardType CardType { get; set; }
}

public static class MOP
{
    public static class CreditCard
    {
        public static MethodOfPayment Visa(string number)
        {
            return new MethodOfPayment() { 
                Number = number,
                PaymentType = MethodOfPayment.enumPaymentType.CreditCard,
                CardType = MethodOfPayment.enumCardType.Visa
            };
        }
    }
}

他のタイプについても繰り返し、必要に応じてインスタンス化します。

ReciptForAirPlaneTicket.MOP = MOP.CreditCard.Visa("4111111111111111|0517"); 
于 2012-05-20T23:06:30.090 に答える