gpt4 book ai didi

c# - 索引器的自定义使用[]

转载 作者:太空狗 更新时间:2023-10-29 18:02:10 25 4
gpt4 key购买 nike

我想创建一个以类似于 ASP.Net Session 的方式工作的对象。

假设我将此对象称为 mySession,我想在您这样做时将其设为

mySession["Username"] = "Gav"

如果不存在,它将添加到数据库表中,如果存在,则更新它。我可以编写一个方法来执行此操作,但不知道如何在与索引器语法 ([]) 一起使用时触发它。我从未构建过使用索引器执行此类操作的对象。

在任何人说之前我知道 ASP.Net session 可以保存到数据库,但在这种情况下我需要一个稍微简单的自定义解决方案。

以这种方式使用索引器的任何指示或示例都会很棒。

谢谢

最佳答案

这实际上与编写典型属性几乎相同:

public class MySessionThing
{
public object this[string key]
{
//called when we ask for something = mySession["value"]
get
{
return MyGetData(key);
}
//called when we assign mySession["value"] = something
set
{
MySetData(key, value);
}
}

private object MyGetData(string key)
{
//lookup and return object
}

private void MySetData(string key, object value)
{
//store the key/object pair to your repository
}
}

唯一的区别是我们使用关键字“this”而不是给它一个专有名称:

public          object            MyProperty
^access ^(return) type ^name
modifier

public object this
^ditto ^ditto ^ "name"

关于c# - 索引器的自定义使用[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com