aardio 文档

aardio 范例: 在 aardio 中使用 .NET 数组

.NET 下标 | .NET 多项索引

//在 aardio 中使用 .NET 数组
//.NET 下标: https://www.aardio.com/zh-cn/doc/example/Languages/dotNet/Item.html
//.NET 多项索引: https://www.aardio.com/zh-cn/doc/example/Languages/dotNet/Multidimensional-Array.html


import dotNet; 
var compiler = dotNet.createCompiler("C#");
compiler.Source = /***
namespace CSharpLibrary  
{   
    public class Object  
    {      

        public static object[] GetObjectArray()
        {   
            return new object[] 
            {
                 new object[] { 123, "str", true },
                 new object[] { 456, "字符串", true }
            }; 

        }
    }   
} 
***/

compiler.import("CSharpLibrary"); 

//获取 .NET 数组,object 类型数组不会自动转换为 aardio 数组
var netArray = CSharpLibrary.Object.GetObjectArray();

/*
所有 .NET 对象在 aardio 中都会多一个 each 方法用于创建迭代器。
注意,并非所有集合对象都支持迭代接口(大多数是支持的)。
*/
for i,v in netArray.each() {
    //注意第一个迭代变量 i 是序号,第二个迭代变量 v 才是当前迭代的值。
    print(i,v) //在这里 i 是数组索引(起始索引为 1),v 是数组值。
}

/*
如果不确定 netArray 是否 .NET 对象,可以改用效果相同的 dotNet.each,
dotNet.each 对普通数组调用 table.eachIndex 创建迭代器。
对于 .NET 对象则调用对象的 each 方法。
对于 COM 对象则调用 com.each 创建迭代器。
*/
for i,v in dotNet.each(netArray) {
    //注意第一个迭代变量 i 是序号,第二个迭代变量 v 才是当前迭代的值。
    print(i,v)  
}
Markdown 格式