下のようなC++のコードはC#のジェネリックではどう書けばいいのでしょうか?

template<typename T> T plus( T v1, T v2 ) { return v1 + v2; }

int i1 = 1, i2 = 2
int i_result = plus( i1, i2 );
short s1 = 1, s2 = 2
short s_result = plus( s1, s2 );