问题标签 [trygetvalue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5191 浏览

c# - 即使键存在,TryGetValue 也会返回 Null?

我有几个字典对象被梳理以获取一个值,但它们都返回 null,即使当我检查它们是否包含键时,具有键的对象返回 true。我还可以使用 foreach 遍历每个以获取基于该键的值....我迷路了

奇怪的是它曾经可以工作……我不确定是什么阻止了它

0 投票
2 回答
8602 浏览

javascript - 在 Dynamics CRM Online 中获取 HTML Web 资源的价值

我正在尝试将 Dynamics CRM 中的值转换为 HTML 网络资源。我发现了这个并试图从中提取代码:

https://msdn.microsoft.com/en-us/library/jj602964(v=crm.7).aspx

它说用来var nameValue = Xrm.Page.getAttribute("name").getValue();把它拿出来。

我的代码是(警报只是为了尝试它是否获得正确的值):

单击“尝试”时没有任何反应!我究竟做错了什么?

谢谢,约翰内斯

0 投票
5 回答
87 浏览

c# - 如何避免更新字典搜索的项目?

在 .NET Winfroms C# 应用程序中,我有一个名为 listItems 的 Dictionary 集合。我在应用程序启动时将数据存储在其中。在静态类中,我有以下内容:

为了从另一个类的 listItems 中检索项目,我使用:

上面发生的情况是,我搜索一个项目并得到它“ refScannedItem”,然后我将它的描述附加到"BOX of " + boxItem.Quantity + " " + refScannedItem.Description;. 因此,如果原始描述是“Aquafina”,我将其设为“BOXof 10 Aquafina”。嵌套时间我扫描相同的产品,我找到了产品,但现在它的描述变成了“10 盒 Aquafina”,所以我的设置描述线变成了“10 盒 10 盒 Aquafina”。类似“10 盒 10 盒 10 盒 Aquafina”等等。

正如您在我的查找代码中看到的那样,我最初使用TryGetValue,然后尝试使用LINQ,然后尝试使用ContainsKey,但在所有这些中,为什么 listItem 的值会被更新。

我知道 asTryGetValueout参数,所以值作为 a 传递reference,然后它将被更改。但listItems[key]也在更新它!我怎样才能避免这种情况发生?我选择了Dictionary集合以便于快速搜索,但这部分在我的应用程序上也带来了很多问题和一个大错误。我找不到接收值但不应该更新的解决方案。所有文章都显示了如何搜索和更新它。

请为上述问题提出解决方案。非常感谢任何帮助。

谢谢

0 投票
1 回答
255 浏览

c# - specify type of delegate parameter

im trying to use TryGetValue.

to Invoke a delegate inside Method i use dictionary to select one delegate and then Invoke it.

the dictionary type is

and the action type is

So here it seems i can not declare action in delegate parameter correctly.

Compiler expects out be type of Action<Mesh> but how can i set the action type?

before using TryGetValue i used dictionary normally

but because sometimes i got error for Key not found so i decided to use TryGetValue

this is the code without TryGetValue and works fine if all Keys find.

Edit: note that action is nothing outside delegate. i just want to send parameter inside TryGetValue and use its resault.

and here is the Method

0 投票
3 回答
260 浏览

c# - 为什么这个方法带有一个'out'参数说它没有设置?

啊!好吧,我将把它作为一个问题发布,因为我不知道为什么我会看到这个错误......但当然,当我看到它时,它现在是如此明显。现在拍自己的头。不过,我会把它留在这里取乐。看看你能不能抓住它。

今晚在为 WeakDictionary 类实现 TryGetValue 时,我遇到了一些奇怪的事情。我收到一个错误,我不知道为什么。

这是代码:

这是我得到的错误:

在控制离开当前方法之前,必须分配 out 参数“值”。

在我看来,所有代码路径在返回之前都设置了“值”。

如果第一个“if”失败,则“else”子句设置“value”。

但是,如果第一个“if”通过,则下一行“weakReference.TryGetTarget”是否设置了“值”,原因与我被警告的完全相同(即“TryGetTarget”本身有一个“out”参数,因此它也必须在返回之前在内部设置其 out 参数)?

就像我说的,我遗漏了一些明显的东西。(我需要睡觉!)

0 投票
1 回答
165 浏览

c# - bool TryGetX(out X x) 模式的替代方案

我经常使用该模式

当我需要从可能失败的服务中获取数据时。当客户端和服务在尝试检索数据之前都不知道数据是否可用时,我会使用它。我从来没有对以这种方式使用out参数感到完全满意,而且我从其他 SO 问题中看到它被认为是一种糟糕的模式。

但是,我还没有看到一个令人信服的替代 API,它可以向客户端提示他们的方法调用实际上可能不会返回数据。

我考虑过的替代方案:

  • X GetX(),如果服务无法提供请求的数据,则GetX()将返回null 。我不喜欢这样做,因为很多人不清楚他们需要检查是否返回null。考虑到我在处理过的遗留代码中遇到的空引用异常的数量,人们经常忽略空检查,并且用户会看到一个丑陋的异常框。至少TryGetX方法对客户端来说是清楚的,数据可能不会被返回。即使他们确实检查了 null,是否在任何地方都需要if (x == null)真的比TryGetX(out X x)更好?

  • Try/Catch,如果无法返回数据, GetX()会抛出异常。同样,客户可能没有意识到GetX()会引发异常,即使他们这样做了,您也会在代码周围散布 Try/Catches。

  • GetXResult GetX(),其中GetXResult类有两个属性:bool SuccessX x。这可能是我首选的替代方案,但是我有很多结果类在四处飘荡,使我的项目变得混乱。

返回数据但可能无法返回请求的数据的方法的最佳方法是什么?

0 投票
1 回答
282 浏览

c# - 从键中使用 TryGetValue 并添加未按预期工作

我有这段代码可以从字典中检索一个值(整数数组)然后根据它所在的 if 语句递增整数数组中的一个元素。

现在我遇到的问题是,每当我将修改后的 OutOfDic 数组读回字典中指定键的值部分时,字典中的每个值也会被修改,而不仅仅是我指定的键。注释部分给出与未注释部分相同的结果。如何解决此问题以仅将值添加到指定的键?

0 投票
1 回答
1926 浏览

c# - 在字典 TryGetValue 中,如果它是类的一部分,我如何编写 out 参数(并获取它的值)?

过去的问题线程和完整过去代码的链接在这里

我用一个参数类创建我的字典,以便它可以保存两个string值。现在我正在尝试将 a 写入TryGetValue此类out中的两个字符串:

如您所见,有theDescriptiontheClass嵌套在DictionarySetup. 然后我会在这里使用该类创建字典:

然后,我打算TryGetValue在字典上使用我的扩展方法:

最后,我在我的事件中调用扩展方法,如下所示:

0 投票
3 回答
3765 浏览

c# - 少错 TryGetValue 然后空检查语法

我对 C# 还是有点陌生​​……我发现自己一遍又一遍地重用一个特定的过程。在我为个人懒惰写一个辅助方法之前,有没有更短或更错误的方法来写这种语句?

本质上,通过尝试获取值来设置对象的属性,然后如果它为空,则使用默认值。我有很多属性,如果我可以就更好了

同样,我完全有能力编写自己的辅助函数。在此之前,我正在寻找现有的本机功能或速记。

0 投票
2 回答
1660 浏览

c# - 即使存在键,TryGetValue 也评估为 False

这个问题与这个问题基本相同,尽管那个人的问题的答案原来是一个简单的尾随空格。

我的问题是我正在从 Web API 作为字典检索数据,然后尝试从中获取值。我正在使用TryGetValue,因为并非字典中的每个项目都必然包含每个键。出于某种原因,虽然我可以在一个键存在时毫无问题地获得它的值,但另一个键TryGetValue总是评估为假,因此不会返回该值,即使我可以在调试中看到该键存在.

因此,此块始终检索“System.Description”键的值(如果存在):

但是,这个几乎相同的块永远不会检索“CustomScrum.RoadmapGroup”键的值:

正如您在此屏幕截图中看到的那样,字典确实包含一个名称与我的TryGetValue语句完全匹配的键: 在此处输入图像描述

如果我在TryGetValue语句评估为 true ( feature.Description = descriptionValue;) 时应该运行的代码上设置断点,则它永远不会被命中。

对于字典中的每个项目,该feature.RoadmapGroup变量都设置为 0。

至少在过去的两个小时里,我一直盯着这个,我看不出我做错了什么。