我想制作一些像这样的通用方法
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Dim path As String
Dim pic As Image
pic = PictureBox1.Image
SaveFileDialog1.ShowDialog()
pic.Save(SaveFileDialog1.FileName)
End Sub
并像
一样使用它public static T maxValue(T value1, T value2 )
{
if(value1>value2)
return value1;
else
return value2;
}
我的问题是max<string>.maxValue("john","john");
函数的返回类型应该是什么,以及如何使用maxValue
,+
,=
,<
等运算符通用类型?
我知道>
没有已定义的数据类型。我需要改进这段代码。
答案 0 :(得分:3)
你可以这样做。您可以将其用于==
,>
,<
等比较,但不能用于+
,-
等操作。
这里,我们用于>
(返回类型为T,与输入类型相同)
public static T maxValue<T>(T value1, T value2) where T : IComparable<T>
{
if (value1.CompareTo(value2) > 0)
return value1;
else
return value2;
}
用法
var maxInt = maxValue(3, 7); //=> 7
var maxDouble = maxValue(34.89d, -9.6d); //=> 34.89