aardio 文档

aardio 范例: 在 aardio 中访问 .NET 下标 Item[]

//在 aardio 中访问 .NET 下标 Item[]
import console;  
import dotNet;  
var compiler = dotNet.createCompiler("C#");

compiler.Source = /****** 
using System;
using System.Collections.Generic;
namespace CSharpLibrary  
{ 
    public class TestClass
    { 
        private Object [] values = new Object [] {1,2,3,4,5,6,7,8,9};
        public Object this [int index]
        {
            get  { return values[index]; }
            set  { values[index] = value; }
        }

        public Dictionary<string,string> dict = new Dictionary<string,string> ();
   }
} 
******/ 

compiler.import("CSharpLibrary"); //编译并引入 C# 名字空间
var netObj = CSharpLibrary.TestClass(); //使用 C# 编写的类构造对象实例

/*
如果使用索引下标操作符 [] 获取成员,
则 aardio 与 C# 一样解析为读取 .NET 对象的 Item[] 属性。
如果 a["b"] 读取值失败且对象 .NET 对象不存在 Item[] 属性,则改为执行 a.b 读取属性。
*/
netObj.dict["test"] = "abc";//写字典的键值 
console.log( netObj.dict["test"] );//读字典的键值

//直接读写 Item 属性也可以。
var item = netObj.Item[5];//注意这里要按 C# 起始下标为 0 ( aardio 对象 起始下标为 1)。
var item = netObj.getItem(5); //这样读下标属性也可以,支持多参数。
var item = netObj.Item(5); //get 前缀可以省略,支持多参数。
netObj.Item[5] = 123;
netObj.setItem(5,123); 

//如果省略属性名 Item,则起始下标为 1。
var item = netObj[6];//等价于 netObj.Item[6-1]。
netObj[6] = 123; 

/*
极罕见的 C# 对象也有可能自定义起始下标为 1,
如果写 netObj[2] 会很奇怪,可以改为 netObj.Item[1] 。 
*/
console.pause();
Markdown 格式