示例#1
0
    public static Subclass1 makeDefault()
    {
        Subclass1 result = Subclass1.make(0);

        result.m_data = new IBOutlet <NSString>(result, "myData");
        return(result);
    }
示例#2
0
    public void DerivedArg()
    {
        Subclass1 x = Subclass1.make(13);
        NSString  s = NSString.Create("hey");

        NSString t = x.Call("concat", s, s).To <NSString>();

        Assert.AreEqual("heyhey", t.description());
    }
示例#3
0
    public void ObjectArg2()
    {
        NSObject x = Subclass1.make(13);
        NSObject y = Subclass1.make(1);

        int n = (int)x.Call("TakeBase", y);

        Assert.AreEqual(3, n);
    }
示例#4
0
    public void ObjectArg1()
    {
        Subclass1 x = Subclass1.make(13);
        Subclass1 y = Subclass1.make(1);

        int n = (int)x.Call("TakeBase", y);

        Assert.AreEqual(3, n);
    }
示例#5
0
    public void NewTest()
    {
        Subclass1 instance = Subclass1.makeDefault();

        instance.Call("initValue");

        int value = (int)instance.Call("getValue");

        Assert.AreEqual(100, value);
    }
示例#6
0
    public static Subclass1 make(int v)
    {
        Subclass1 result = (Subclass1) new Class("Subclass1").Call("alloc").Call("init");

        result.autorelease();
        result.m_value = v;
        result.m_data  = new IBOutlet <NSString>(result, "myData");

        return(result);
    }
示例#7
0
    public static void Main()
    {
        Subclass1 s1 = new Subclass1("AbCdEf");

        CallOutput(s1, "AbCdEf");

        Subclass2 s2 = new Subclass2("AbCdEf");

        CallOutput(s2, "AbCdEf");
    }
示例#8
0
    public void StaticNewTest()
    {
        Class     klass    = new Class("Subclass1");
        Subclass1 instance = klass.Call("makeDefault").To <Subclass1>();

        instance.Call("initValue");

        int value = (int)instance.Call("getValue");

        Assert.AreEqual(100, value);
    }
示例#9
0
    public void DeallocTest()
    {
        NSObject pool = new NSObject(NSObject.AllocAndInitInstance("NSAutoreleasePool"));

        Subclass1 instance = (Subclass1) new Class("Subclass1").Call("alloc").Call("init");

        Assert.AreEqual(1L, instance.retainCount());
        instance.release();
        Assert.IsTrue(instance.Dead);

        pool.release();
    }
示例#10
0
    public void IVarTest2()
    {
        Subclass1 instance = Subclass1.makeDefault();

        // Can set ivars using IVar.
        instance.Data = "hey";
        NSString s = (NSString)instance["myData"];

        Assert.AreEqual("hey", s.ToString());

        // Can get ivars using IVar.
        Assert.AreEqual("hey", instance.Data);
    }
示例#11
0
    public void DerivedWithCast()
    {
        NSObject o = (NSObject) new Class("Subclass1").Call("alloc").Call("initValue");

        NSObject p = (NSObject)o.Call("Clone");

        Assert.IsTrue((IntPtr)o != (IntPtr)p);
        Assert.AreEqual(100, (int)p.Call("getValue"));

        Subclass1 q = (Subclass1)o.Call("Clone");

        Assert.IsTrue((IntPtr)o != (IntPtr)q);
        Assert.AreEqual(100, q.GetValue());
    }
示例#12
0
    public void DerivedWithTo()
    {
        NSObject o = new Class("Subclass1").Call("alloc").Call("initValue").To <NSObject>();

        NSObject p = o.Call("Clone").To <NSObject>();

        Assert.IsTrue((IntPtr)o != (IntPtr)p);
        Assert.AreEqual(100, (int)p.Call("getValue"));

        Subclass1 q = o.Call("Clone").To <Subclass1>();

        Assert.IsTrue((IntPtr)o != (IntPtr)q);
        Assert.AreEqual(100, q.GetValue());
    }
示例#13
0
        static void Main(string[] args)
        {
            CompileTimePolyMorphism cp = new CompileTimePolyMorphism();
            RunTimePolyMorphism     rp;

            Console.WriteLine("Compile Polymorphism - " + cp.Multiply(2, 5));
            Console.WriteLine("Compile Polymorphism - " + cp.Multiply(8.5, 10.5));

            Console.WriteLine("----------------------------------------");

            rp = new Subclass1();
            Console.WriteLine(rp.Print());

            rp = new Subclass2();
            Console.WriteLine(rp.Print());
        }
示例#14
0
 public int TakeDerived(Subclass1 s)
 {
     return(3 * s.GetValue());
 }
示例#15
0
 public Subclass1 Clone()
 {
     return(Subclass1.make(m_value));
 }
示例#16
0
 public int TakeDerived(Subclass1 s)
 {
     return 3 * s.GetValue();
 }