public class Faranheit
{
public float Digree { get; set; }
public Faranheit(float f)
{
Digree = f;
}
public static implicit operator Celcius(Faranheit f)
{
return new Celcius((5.0f / 9.0f) * (f.Digree - 32));
}
public static implicit operator Faranheit(Celcius c)
{
return new Faranheit((9.0f / 5.0f) * c.Digree + 32);
}
}
public class Celcius
{
public float Digree{get;set;}
public Celcius(float c)
{
Digree = c;
}
}
変換方法を正確にどこに置くか、私は混乱しています。
1つのメソッドを一方のクラスに配置し、もう一方をもう一方のクラスに配置したり、それらを交換したり、両方を2つのクラスのいずれかに配置したりしても、正常に機能します。
しかし、これら2つのクラスの外に置くと、機能しません(コンパイルエラー)。
誰かがこれに光を当ててください。
編集:
変換メソッドをいずれかのクラスに含めることができる場合、変換メソッドを別のクラスに含めることができないのはなぜですか?