-5

この例の問題を試しています。ここでは、2 つの暗黙的な変換演算子を作成して、Human から Doggy クラスを作成する必要があり、その逆も同様です。クラスでは、人間の 1 年が犬の 7 年であることを考慮する必要があります。犬の年から人間の年に移行する場合、年齢の型がまだ int であることを確認するために (もちろん)、明示的な変換が必要になる可能性があると言われました。DogToHuman.Name、DogToHuman.Age、HumanToDog.Name、HumanToDog.Age の定義方法がわかりません。私はプログラミングに慣れていないので、この形式には慣れていません。人間の年齢の 25 歳のように、どんな数字から始めても問題ありません。

class Human
{
    public string Name;
    public int Age;
    public Human(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

class Doggy
{
    public string Name;
    public int Age;
    public Doggy(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

class ConversionQuestion
{
    static void Main(string[] args)
    {
        Console.WriteLine("As a Human, {0} would be {1}", DogToHuman.Name, DogToHuman.Age);
        Console.WriteLine("As a Dog, {0} would be {1}", HumanToDog.Name, HumanToDog.Age);
        Console.ReadLine();
    }
}

混乱して申し訳ありません。私は答えを探しているだけではなく、どうすればよいかをもっと探していました。

4

3 に答える 3

1

ConversionQuestion クラスを次のように変更します。

class ConversionQuestion
{
    static void Main(string[] args)
    {
        Doggy dog = new Doggy("Max", 3);
        Human human = new Human("Leonardo", 23);

        Console.WriteLine("As a Human, {0} would be {1}", DogToHuman(dog).Name, DogToHuman(dog).Age);
        Console.WriteLine("As a Dog, {0} would be {1}", HumanToDog(human).Name, HumanToDog(human).Age);
        Console.ReadLine();
    }

    public static Human DogToHuman(Doggy dog)
    {
        return new Human(dog.Name, (dog.Age * 7));
    }

    public static Doggy HumanToDog(Human human)
    {
        return new Doggy(human.Name, (human.Age / 7));
    }
}
于 2014-04-23T22:47:11.133 に答える