'this' 关键字作为属性

2024-01-16

我很了解 C#,但这对我来说很奇怪。在一些旧程序中,我看到过这样的代码:

public MyType this[string name]
{
    ......some code that finally return instance of MyType
}

怎么称呼?这有什么用呢?


It is indexer http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx。声明后,您可以这样做:

class MyClass
{
    Dictionary<string, MyType> collection;
    public MyType this[string name]
    {
        get { return collection[name]; }
        set { collection[name] = value; }
    }
}

// Getting data from indexer.
MyClass myClass = ...
MyType myType = myClass["myKey"];

// Setting data with indexer.
MyType anotherMyType = ...
myClass["myAnotherKey"] = anotherMyType;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

'this' 关键字作为属性 的相关文章

  • 类型转换 sockaddr 结构

    我正在尝试学习网络编程 并在这个过程中学习C 我对结构感到困惑sockaddr这是一个通用地址 并且sockaddr in 我的书里是这么说的 因此 我们可以填写 sockaddr in 的字段 然后强制转换 a 指向 它指向 指向 soc
  • 如何查找boost运行时版本

    我正在编写一个使用 boost 的 C 库 在这个库中 我想包含有关用于编译我的库的二进制版本的 boost 版本的信息 我可以使用宏BOOST VERSION这很好 我还想确定哪个是 boost 的运行时版本 以便我可以与用于编译我的库的
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 将数组从 C# 编组到 C++ 并返回:PInvokeStackImbalance

    我有一个 C 函数 我想从 C 访问它 问题是我不断收到 PInvokeStackImbalance 异常 但我不知道为什么 当检查异常被关闭时 一切都运行良好并且符合预期 我的 C 函数的签名是 extern C double solve
  • 在 C++ 中,严格别名规则中的“访问”是什么意思?

    3 10 10 说 如果一个程序试图access通过除以下类型之一之外的泛左值存储对象的值 行为未定义 然而 术语 访问 并没有在任何地方定义 在这种情况下这意味着read or 读取或修改 在 C 标准中 它被明确定义为读取或修改 然而在
  • C# - 如何将 IntPtr 缓冲区数据保存到文件(最快的方法)?

    我使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中 这是一个简单的回调函数 private void callback IntPtr buffer int length byte bytes new byte lengt
  • Code First - 实体框架 - 如何公开外键

    我有以下数据对象 public class Customer System Data Entity ModelConfiguration EntityTypeConfiguration
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 读取所有进程内存以查找字符串变量c#的地址

    我有 2 个用 C 编写的程序 第一个名为 ScanMe 的程序包含一个包含值 FINDMEEEEEEE 的字符串变量 以及一个值为 1546 22915487 的双精度变量 另一个名为 MemoryScan 的程序读取第一个程序的所有内存
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 在同一条线上铸造两次

    我在项目中看到了这段代码 b的类型是void void b int a int unsigned long b 这条线毫无意义吗 我的意思是 这与a int b在所有情况下 这可能会避免 64 位 Unix 系统上的编译器警告unsigne
  • #define, #ifdef #undef #endif

    我有以下代码 define PROC ADD void main void while 1 ifdef PROC ADD Do this code here then undefined it to run the code in the
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • 组合框由于某种原因被链接

    我有以下代码来填充 3 个组合框 private void PopulateDDLs SqlConnection connection SqlCommand command SqlDataReader reader DataTable dt
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进
  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • 在 WPF 树视图中获取 FullPath?

    如果我以编程方式创建 WPF TreeView 例如 TreeView treeView lt added in the designer TreeViewItem rootNode new TreeViewItem rootNode He
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足

随机推荐

  • 如何扫描 pandas 数据帧中所有大于某值的值并返回与该值对应的行号和列号?

    我有一个问题 我有如下所示的巨大数据集 相关系数矩阵 A B C D E A 1 0 413454352 0 615350574 0 479720098 0 34261232 B 0 413454352 1 0 568124328 0 31
  • 提交-拉-合并-推还是拉-合并-提交-推?

    我们几周前开始使用 Mercurial 大多数开发人员都遵循以下工作流程 致力于某项功能 commit m 致力于功能 ABC pull u If branch merge 提交 m 合并 push 今天 我们的一位开发人员建议我们这样做
  • Keras ImageDataGenerator 流程方法中的 save_to_dir 遇到问题

    我想保存 ImageDataGenerator 正在创建的增强图像 以便以后使用它们 当我执行以下代码时 它运行正常 但我希望保存的图像没有显示在我尝试保存它们的目录中 gen image ImageDataGenerator rotati
  • Future 任务完成后 Java 进程没有退出

    这是我使用 Future 的代码片段 import java util concurrent import java util public class FutureDemo public FutureDemo Future Executo
  • 更改或删除 App Store 中的开发者名称

    我已经为我的客户创建了一个应用程序 我们已经用我的帐户发布了该应用程序 现在 他们想将开发商名称更改为他们公司的名称 有没有办法更改开发商名称 我可以将我的应用程序移至他们的企业帐户 以便开发者名称更改为他们的企业名称吗 是的 自 WWDC
  • 阅读 Fetch Promise 的正文

    我有以下用于上传到 Google Cloud 存储的快速端点 它工作得很好 来自 google api 的响应给了我一个唯一的文件名 我想将其传回我的前端 app post upload req res gt var form new fo
  • Spring Boot 与 POM 打包聚合器

    是否可以使用 Spring Boots Maven 插件命令spring boot run当项目的父POM因其子项目而使用打包模式POM时 我有一个多模块 Maven 项目 其中有一个 主 POM 它又是 Spring Boot 父模块的子
  • iPhone内存警告级别=2

    我有一个应用程序 可以将大量视图堆叠在一起 在某些时候 我收到内存警告级别 2 这是预期的 问题是 当我运行 Instruments 时 我没有任何内存泄漏 并且该应用程序占用了大约 9 10MB 的空间 这不是that我会说很多吗 问题是
  • 如何根据属性查找两个数组列表之间的差异?

    我有两个数组列表 每个都有 Employee 类型的对象列表 Employee 类如下所示 public class Employee Employee String firstname String lastname String emp
  • 防止 Thread.CurrentPrincipal 跨应用程序域传播

    有人可以阻止当前线程的 IPrincipal 在应用程序域边界上传播吗 我无法控制分配给线程的 IPrincipal 但我可以控制创建应用程序域 我想要这样做的原因是为了防止在主要对象类型程序集在其他域中不可用时发生序列化错误 Edit E
  • 如何为 1x1 Android 小部件创建清晰的背景图像?

    我正在创建一个 1x1 小部件 无论我尝试什么 我都无法让背景图像看起来漂亮且清晰 我已经阅读了几乎所有我能找到的资源 但我仍然无法获胜 我正在为 HTC Desire Nexus 1 进行设计 希望有人告诉我在 Photoshop 中创建
  • 在 Node.JS 中引用相对于应用程序根目录的文件的正确方法

    我有一个在 AWS EC2 的 Linux 上运行的 Node JS 应用程序 它使用 fs 模块读取 HTML 模板文件 这是应用程序的当前结构 server js templates my template html services
  • Angular 6 迁移 -.angular-cli.json 到 angular.json

    我已经将我的项目升级到 Angular 6 除了转换之外一切都很顺利 angular cli json文件 从我遵循的指南来看 据说这会自动转换它 npm install g angular cli npm 安装 angular cli n
  • 构建 SparkSession

    我有在齐柏林飞艇担任翻译的火花 我使用的是Spark2 0 我构建了一个Session Create 一般来说 你不应该初始化SparkSession nor SparkContext在齐柏林飞艇 Zeppelin 笔记本配置为为您创建会话
  • Haskell 中 (^) 的奇怪行为

    为什么 GHCi 下面给出了错误的答案 GHCi gt 20 24373193905347 12 2 20 24373193905347 24 4 503599627370496e15 Python3 gt gt gt 20 2437319
  • 从沙箱 iFrame 到主窗口的 PostMessage,origin 始终为 null

    关于 javascript postMessage 事件的事件起源 我不明白一些事情 这是我的主页 h1 Test h1 h2 Outside h2 和我的 i
  • 在 Saleor 中编辑模型并扩展数据库结构

    我最近将 Saleor 2 9 分叉为一个网络应用程序 我正在为一家艺术画廊构建该应用程序 该画廊希望展示其待售产品并为他们的艺术家提供一些宣传 我希望能够拥有一堆卡片 例如 我们的团队 组件 从后端的艺术家表中提取数据 该表存储有关艺术家
  • C++ 重载宏

    我看到了重载宏的不同解决方案和变通方法 但我似乎在这一点上遇到了困难 我有一个PRINT DEBUG打印到 Visual Studio 调试器的宏 define DEBUG PRINT message RPTN 0 message n VA
  • Node.js WriteStream 在关闭之前不会将数据写入文件

    我怎样才能将数据写入文件WriteStream write 叫做 编辑 事实证明 当我使用 REPL 并调用该函数时 这是有效的 但是 这在我的程序中不起作用 import as FS from fs import LetterGroup
  • 'this' 关键字作为属性

    我很了解 C 但这对我来说很奇怪 在一些旧程序中 我看到过这样的代码 public MyType this string name some code that finally return instance of MyType 怎么称呼