我在Visual Studio2010中创建了一个控制台项目,并选择了.Net Framework2.0
namespace ConsoleApp1
{
class Program
{
public int Add(int a, int b = 0, int c = 0)
{
Console.WriteLine("a is " + a);
Console.WriteLine("b is " + b);
Console.WriteLine("c is " + c);
retur
常识表明,对于返回类型,子类型应该是协变的,而对于参数类型,则应该是反变体。因此,由于E.f的严格协变参数类型,应该拒绝以下内容
interface C {
f (o: C): void
}
interface D extends C {
g (): void // give D an extra service
}
class E implements C {
// implement f with a version which makes stronger assumptions
f (o: D): void {
o.g() // rely on
我刚刚在VS2010中创建了一个简单的项目,C# DotNet3.5
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Business.Util
{
public interface ICalculateCurrent<in T1, in T2, in T3, in T4>
{
bool GetValue(T1 obj1, T2 obj2, T3 obj3, T4 obj4);