2016-11-07 67 views
2

林不知道这是可能的。即时通讯使用一个方法,采用参数int,但我发现自己在一种情况下,我需要能够使用浮点值。有谁知道是否有改变预定义方法可以采用的参数?是否可以更改预定义方法在C#中可以使用的参数?

感谢所有 最佳 亚历

+0

您是否尝试过重载方法? –

+0

只需将其转换为int(int),或者在其周围编写您自己的封装,它接受浮点数并在内部强制转换为int。 – jamesbascle

+0

谢谢大家!今天我学到了很多。所有最好的 – AlexC

回答

0

C#有泛型他类型的要求,要运用参数输入

的例如类型的逻辑淡然道:

T foo<T>(T param) 
{ 
    return param + 1; 
} 

//and it can be used like this 

int i; 
foo<int>(i); // return type is int 

float f; 
foo<float>(f); // return type is float 
+0

非常感谢这真的很有帮助!当我得到一个15生病的代表给你所有的投票。最好的Alex – AlexC

0

您可以按如下方式重载方法:

+0

这两种方法不应该有相同的返回类型吗? – Jules

+0

@Jules我不确定我是否按照任何一种方式返回float或int我只是没有在计算上添加任何逻辑。 –

+1

@Jules没有必要。 – Kyle

0

成员重载意味着创建两个或多个相同类型的成员,这些成员仅在参数的数量或类型上有所不同,但名称相同。 - Microsoft MSDN

// your method 
public static double Inc(int i) 
{ 
    return i + 1; 
} 

// your method (overloaded) 
public static double Inc(double d) 
{ 
    return d + 1; 
} 

int i = Inc(3); 
double d = Inc(2.0); // You can use the same method with different parameter types 

网站www.dotnetperls.com有很多很好的例子。如果你想看到除MSDN以外的其他解释,你可以阅读this

+0

非常感谢这真的很有帮助!当我得到一个15生病的代表给你所有的投票。最好的Alex – AlexC

0

您可以为这些方法定义一个通用类。

public class GenericMethodsClass<T> 
{ 
    public static T myMethod(T sumNumber) 
    { 
     // whatever you need for code here 
     return sumNumber; 
    } 
} 

呼唤:

GenericMethodsClass<int>.myMethod(1); 
GenericMethodsClass<double>.myMethod(1.2); 
+0

非常感谢这真的很有帮助!当我得到一个15生病的代表给你所有的投票。最好的亚历克斯 – AlexC

+0

现在你可以做到这一点 –

相关问题