C#在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
QFrameWork学习 发布于:2024-04-22 10:11 Shader 讲解 发布于:2024-04-16 13:09 csharp文本AES解密 发布于:2024-03-23 08:52 初始化单链表 单链表的取值方法 单链表的查找方法 单链表的插入方法 单链表的删除方法 使用主函数调用以测试以上函数 发布于:2024-03-20 19:07 曲线lerp 发布于:2024-03-16 14:31 用于创建跟随相机 发布于:2024-03-16 14:22 次表面散射代码 发布于:2024-03-09 17:32 Unity 根据Excel生成C#脚本 发布于:2024-02-17 16:45 Test the "Value and Reference" program 发布于:2024-02-12 11:12 测试枚举类型 发布于:2024-02-08 17:29 获取用户名 发布于:2024-02-06 10:24 # 自定义委托 委托也是一种类,所以声明时与其它类是平级的。 ``` public delegate double Calc(double x, double y); public class HelloWorld { public static void Main() { } } ``` delegate 告诉编译器正在声明委托,double 表示目标方法的返回值类型,圆括号里是目标方法的参数列表。 委托于所封装的方法必须类型兼容。 发布于:2024-02-05 20:59 # Action委托和Func委托 Action委托只能委托没有返回值的方法。 Func委托则没有限制。 Func<参数类型,参数类型,...,返回值类型> func = new Func<参数类型,参数类型,...,返回值类型>(需要委托的函数); 委托的函数的参数类型和返回值类型,需要和Func<>中声明的相同。 发布于:2024-02-05 20:45 判断time赋值(百度c#吧某问题代码) 发布于:2024-01-30 15:38 测试js 生成hmac算法 发布于:2024-01-26 17:28 系统化untiy学习 发布于:2024-02-28 11:28 hmac 代码执行 发布于:2024-01-26 18:34 顺序查找法 发布于:2024-01-19 19:31 unity项目笔记 发布于:2024-01-22 13:27 简单的Func数据封装 发布于:2024-01-14 13:41 抽奖注册器 发布于:2023-12-28 16:48 测试功能xin 发布于:2023-12-25 20:41 C#初学-学习代码语法 发布于:2023-12-14 17:46 unity 面试 发布于:2024-01-23 17:14 基数排序的设计 发布于:2023-12-12 22:43 散列表避免重复投票 发布于:2023-12-12 00:01 基数排序算法 发布于:2023-12-11 23:40 判断闰年月份 发布于:2023-12-08 17:29 #include <iostream> #include <chrono> #include <thread> int main() { std::cout << "延迟输出前的消息" << std::endl; // 设置延迟时间为3秒 std::chrono::seconds delay(3); // 让线程睡眠3秒 std::this_thread::sleep_for(delay); std::cout << "延迟输出后的消息" << std::endl; return 0; } 发布于:2023-12-07 10:45 计数排序算法 发布于:2023-12-04 00:08 堆排序算法 发布于:2023-11-28 00:14 快速排序算法 发布于:2023-11-13 22:21 归并排序逆序对 发布于:2023-11-06 15:39 归并排序算法 发布于:2023-11-06 14:07 计算日期间隔 发布于:2023-11-01 16:07 二维数组旋转 发布于:2023-10-30 11:30 C# 事件何存 发布于:2023-10-29 08:22 C#控制台模拟器 发布于:2023-10-23 09:22 九九乘法表 发布于:2023-10-17 22:11 折半查找方法 发布于:2023-10-15 14:08 插入排序算法 发布于:2023-10-15 10:14 折半查找算法 发布于:2023-10-15 10:12 插入排序法 发布于:2023-10-10 16:49 这是好的的一段学习程序 发布于:2023-10-11 22:13 IEnumerator 接口learn 发布于:2023-10-07 19:18 背包问题算法 发布于:2023-10-06 15:52 蛮力匹配字符串算法 发布于:2023-10-06 15:45 一、匹配字符串问题代码实现 发布于:2023-10-05 13:16 c#多线程学习 发布于:2023-10-04 18:32 面向对象编程 发布于:2023-09-24 17:57 [更多]
显示目录

索引器(Indexer)



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

C# 索引器(Indexer)

索引器(Indexer) 允许一个对象可以像数组一样被索引。当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样。您可以使用数组访问运算符([ ])来访问该类的实例。

语法

一维索引器的语法如下:

element-type this[int index] 
{
   // get 访问器
   get 
   {
      // 返回 index 指定的值
   }

   // set 访问器
   set 
   {
      // 设置 index 指定的值 
   }
}

索引器(Indexer)的用途

索引器的行为的声明在某种程度上类似于属性(property)。就像属性(property),您可使用 getset 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分。

定义一个属性(property)包括提供属性名称。索引器定义的时候不带有名称,但带有 this 关键字,它指向对象实例。下面的实例演示了这个概念:

using System;
namespace IndexerApplication
{
   class IndexedNames
   {
        private string[] namelist = new string[size];
        static public int size = 10;
        public IndexedNames() {
            for (int i = 0; i < size; i++)
            {          
                namelist[i] = "N. A.";       
            }       
        }
        public string this[int index]
        {
            get{
                 string tmp;
                 if( index >= 0 && index <= size-1 ){
                     tmp = namelist[index];
                 }else{
                     tmp = "";
                 }
                 return (tmp);
             }
             set{
                 if( index >= 0 && index <= size-1 )
                 {
                     namelist[index] = value;
                 }
             }
        }
        static void Main(string[] args) {
            IndexedNames names = new IndexedNames();
            names[0] = "Zara";
            names[1] = "Riz";
            names[2] = "Nuha";
            names[3] = "Asif";
            names[4] = "Davinder";
            names[5] = "Sunil";
            names[6] = "Rubic";
            for ( int i = 0; i < IndexedNames.size; i++ )
            {             
                Console.WriteLine(names[i]);
            }
            Console.ReadKey();
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.

重载索引器(Indexer)

索引器(Indexer)可被重载。索引器声明的时候也可带有多个参数,且每个参数可以是不同的类型。没有必要让索引器必须是整型的。C# 允许索引器可以是其他类型,例如,字符串类型。

下面的实例演示了重载索引器:

using System;
namespace IndexerApplication
{
    class IndexedNames
    {
        private string[] namelist = new string[size];
        static public int size = 10;
        public IndexedNames() {
            for (int i = 0; i < size; i++)
            {
                namelist[i] = "N. A.";
            }
        }
        public string this[int index]
        {
            get
            {
                string tmp;
                if( index >= 0 && index <= size-1 )
                {
                    tmp = namelist[index];
                }else{
                    tmp = "";
                }
                return ( tmp );
            }
            set
            {
                if( index >= 0 && index <= size-1 )
                {
                    namelist[index] = value;
                }
            }
        }
        public int this[string name]{
            get
            {
                int index = 0;
                while(index < size)
                {
                    if (namelist[index] == name)
                    {
                        return index;
                    }
                    index++;
                }
                return index;
            }
        }
        static void Main(string[] args) {
            IndexedNames names = new IndexedNames();
            names[0] = "Zara";
            names[1] = "Riz";
            names[2] = "Nuha";
            names[3] = "Asif";
            names[4] = "Davinder";
            names[5] = "Sunil";
            names[6] = "Rubic";// 使用带有 int 参数的第一个索引器
            for (int i = 0; i < IndexedNames.size; i++)
            {
                Console.WriteLine(names[i]);
            }// 使用带有 string 参数的第二个索引器
            Console.WriteLine(names["Nuha"]);
            Console.ReadKey();
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.
2
由JSRUN为你提供的C#在线运行、在线编译工具
        JSRUN提供的C# 在线运行,C# 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout