将元组添加到新对象实例字段

时间:2014-07-31 00:08:13

标签: c# switch-statement tuples

我正在尝试运行一个传递并返回Measurement对象的函数。在Measurement对象中,我有一个变量volume,它是一个元组,同时包含一个十进制和一个名为VolumeUnits的枚举,其中包含一系列液体测量类型。

 public Measurement ConvertVolumeUnit(Measurement measure)
    {
        Measurement.VolumeUnits newUnit;
        decimal size = measure.volume.Item1;


        switch (measure.volume.Item2)
        {
            case Measurement.VolumeUnits.tsp:
                if (measure.volume.Item1 > 3)
                {
                    size = size / 3;
                    goto case Measurement.VolumeUnits.Tbsp;
                }
                else
                {
                    newUnit = Measurement.VolumeUnits.tsp;
                    break;

该函数运行一个转换我的单位的开关,但我不知道如何建立一个新的Measurement实例并创建一个新的Measurement.volume项来返回新转换的元组。

             case Measurement.VolumeUnits.gal:
                 newUnit = Measurement.VolumeUnits.gal;
                 break;
             default:
                 break;
         }

         Measurement newMeasure = new Measurement();
         newMeasure.volume = Tuple.Create(size, newUnit);

基本上,我想返回newMeasure,但我必须先填写volume元组。我的错误是告诉newUnit未分配。这只是因为default没有为newUnit分配值吗?

1 个答案:

答案 0 :(得分:0)

写完这一切之后,似乎必须在默认部分中分配newUnit,或者最初是为了避免此错误。