public UserRight(int paramId, string paramCode, string paramName, FuncClass paramFunc, OpClass paramOp) { Func = new FuncClass(); Op = new OpClass(); Id = paramId; Code = paramCode; Name = paramName; Func = paramFunc; Op = paramOp; }
static void Operators() { Console.WriteLine("Operators"); var o1 = new OpClass(10); var o2 = new OpClass(100); (o1 + o2).f(); fo(++o1); o1.f(); fo(o2++); o2.f(); int i = o1; int j = (int)o2; double d = (double)o1; double f = o2; }
public UserRight() { Func = new FuncClass(); Op = new OpClass(); }
public void UserDefinedClass () { // We can use the simplest version of GetMethod because we already know only one // exists in the very simple class we're using for the tests. MethodInfo mi = typeof (OpClass).GetMethod ("op_Addition"); OpClass left = new OpClass (); BinaryExpression expr = Expression.Add (Expression.Constant (left), Expression.Constant (new OpClass ())); Assert.AreEqual (ExpressionType.Add, expr.NodeType, "Add#09"); Assert.AreEqual (typeof (OpClass), expr.Type, "Add#10"); Assert.AreEqual (mi, expr.Method, "Add#11"); Assert.AreEqual ("op_Addition", expr.Method.Name, "Add#12"); Assert.AreEqual ("(value(MonoTests.System.Linq.Expressions.OpClass) + value(MonoTests.System.Linq.Expressions.OpClass))", expr.ToString(), "Add#13"); Expression.Lambda<Func<OpClass>> (expr); #if false // // We do not have support for objects that are not really // constants, like this case. Need to figure out what to do // with those // Func<OpClass> compiled = l.Compile (); Assert.AreEqual (left, compiled ()); #endif }
static void fo(OpClass o) { o.f(); }