50 lines
769 B
C#
50 lines
769 B
C#
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq.Expressions;
|
||
|
|
||
|
public enum Style : ulong {
|
||
|
Foo,
|
||
|
Bar,
|
||
|
}
|
||
|
|
||
|
public class Person {
|
||
|
public Style Style { get; set; }
|
||
|
}
|
||
|
|
||
|
public interface IObjectContainer {}
|
||
|
|
||
|
public static class Extensions {
|
||
|
|
||
|
public static IMarker<T> Cast<T> (this IObjectContainer container)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public static IMarker<T> Where<T> (this IMarker<T> marker, Expression<Func<T, bool>> selector)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public interface IMarker<T> : IEnumerable<T> {}
|
||
|
|
||
|
public class Program {
|
||
|
|
||
|
public static void Main ()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public static void Assert (Action a)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public static void Test (IObjectContainer o, Style s)
|
||
|
{
|
||
|
Assert (delegate {
|
||
|
var res = from Person p in o
|
||
|
where 0 == s
|
||
|
select p;
|
||
|
});
|
||
|
}
|
||
|
}
|