0

我正在尝试创建一个通用类来处理浮点数和双打。我需要根据变量的类型(浮点型或双精度型)执行计算,但我不确定以下实现是否是正确的方法。需要一些建议。

// computeFloat is a method of some other class which actually computes and returns a float value
float computeFloat()
{
   float a;
   .... 
   return a; 
}

// setFloat is a method of some other class which actually sets a float value
void setFloat(float val)
{
  .....
}

TestClass<T> : IDisposable
{

public void getValue(ref T val)
{
   if(val is float)
   {
      object retVal = computeFloat();
      val = (float)retVal;
   }
   else
   { 
       throw new Exception(" Not implemented");
   }
}

public void setValue(T val)
{
   if(val is float)
   {
      object obj = val as object;
      float retVal = (float)obj;

       setFloat(retVal);
   }
   else
   { 
       throw new Exception(" Not implemented");
   }

}   

}
4

1 回答 1

1

您可以查看以下内容以避免使用 if 语句。您还可以考虑在类上添加过滤器以将其限制为某些类型。

public void getValue(ref T val)
{
   object retVal = compute<T>();
   val = (T)retVal;
}
于 2013-10-03T00:00:26.437 回答