89 lines
1.4 KiB
C#
89 lines
1.4 KiB
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
|
||
|
class Test {
|
||
|
|
||
|
public static void Main ()
|
||
|
{
|
||
|
FooList<string> l = new FooList<string> ();
|
||
|
Foo<string> (l);
|
||
|
}
|
||
|
|
||
|
static void Foo<T> (IList<T> list)
|
||
|
{
|
||
|
ICollection coll = list as ICollection;
|
||
|
if (coll != null)
|
||
|
Console.WriteLine (coll.Count);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class FooList<T> : IList<T> {
|
||
|
|
||
|
public int IndexOf (T item)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public void Insert (int index, T item)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public void RemoveAt (int index)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public T this [int index]
|
||
|
{
|
||
|
get { throw new NotImplementedException (); }
|
||
|
set { throw new NotImplementedException (); }
|
||
|
}
|
||
|
|
||
|
public void Add (T item)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public void Clear ()
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public bool Contains (T item)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public void CopyTo (T [] array, int arrayIndex)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public bool Remove (T item)
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public int Count
|
||
|
{
|
||
|
get { throw new NotImplementedException (); }
|
||
|
}
|
||
|
|
||
|
public bool IsReadOnly
|
||
|
{
|
||
|
get { throw new NotImplementedException (); }
|
||
|
}
|
||
|
|
||
|
IEnumerator<T> IEnumerable<T>.GetEnumerator ()
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
|
||
|
public IEnumerator GetEnumerator ()
|
||
|
{
|
||
|
throw new NotImplementedException ();
|
||
|
}
|
||
|
}
|