问题标签 [callermembername]

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 投票
2 回答
120 浏览

c# - 我应该提供一个带有 nameof 成员名称的方法,还是应该依靠 CallerMemberName 为我做这件事?

CallerMemberName是如何实现的?

我明白了它的作用——它允许我们将魔法字符串排除在代码之外——但它应该被过度使用nameof吗?什么更高效?

有什么区别/CallerMemberName 究竟是如何工作的?

0 投票
1 回答
846 浏览

python - 允许调用函数在 Python 中获取调用者的属性

我想创建一个函数,每当调用者获取错误实例的参数时都会调用该函数,它将打印调用者的__doc__属性并退出。功能如下:

我陷入了必须获取__doc__属性的步骤。我知道inspect模块可以做到这一点,方式如下:

(您可以建议另一个与每个 Python 版本兼容的版本,包括 3.5)

但我认为必须有另一种方式。我持怀疑态度的原因是内置return语句会立即向调用者返回某些内容,这意味着子函数必须有一个“钩子”或“管道”可以访问,它被用作媒介与父母交换信息。所以引发我兴趣的最初问题是:

这个管道是否只发送并且没有信息可以向后发送?

我无法回答这个问题,因为该return声明仅在我搜索的网站中进行了简要说明。除此之外,inspect据我所知,该模块将多个帧保存在堆栈中并在后台持续运行。对我来说,这就像我试图用迷你枪杀死一只苍蝇。我只需要调用者函数的名称,而不是 10 帧之前的函数。如果没有任何方法可以做到这一点,在我看来,这是 Python 必须具备的一个特性。我的问题是:

在 Python 中获取调用者属性的 Python 编程方式是什么,并具有普遍支持?对不起,如果我的问题存在无知,我愿意接受任何更正和“思想开放”。谢谢大家的答案。

0 投票
1 回答
806 浏览

c# - 属性更改 | 来电者姓名 | 模糊匹配异常

我在运行时收到以下错误:AmbiguousMatchExcpetion“找到不明确的匹配”。

有人知道是什么原因吗?

班级

截屏

截屏

堆栈跟踪

System.Reflection.AmbiguousMatchException ist aufgetreten。

HResult=-2147475171 Message=Mehrdeutige Übereinstimmung gefunden。
Source=mscorlib StackTrace: bei System.RuntimeType.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers) InnerException:

堆栈跟踪

0 投票
1 回答
132 浏览

c# - 将 [CallerMemberName] 属性与 Func 委托一起使用

我有 GUI 和命令行应用程序都使用的公共类

这个类被传递了一个 ReportError 函数引用,它在 GUI 和 CommandLine 上的作用不同。

在图形用户界面中:

在共同的类成员中:

在通用类构造函数中:

到目前为止,一切都很简单,但我会将 [CallerMemberName] 属性集成到我的日志函数中

所以我也更新了 Func 定义:

注意 ? 告诉它是可选参数

但是当我调用这个 ReportError 函数时,我得到一个编译器错误如下: CS7036: There is no argument given 对应于 Func<string, string?,int> 所需的形参 'arg2'

如果有人已经遇到过这种问题,我将不胜感激。

0 投票
1 回答
298 浏览

c# - 获取 .net 核心中注入服务的调用者信息

我试图弄清楚如果我将这些属性应用于某些服务然后将其注入 DI 将使用哪个CallerMemberName或值。CallerFilePath例如:

所以,我想,它是name变量的预期值还是我做错了什么?在这种情况下我该如何CallerMemberName处理?有可能吗?

0 投票
2 回答
65 浏览

c# - 如果从基类构造函数中使用且未初始化,则 CallerMemberName 为空

我有两个这样的课程:

如果我test1通过调用 base 指定 ctor - 我得到membernamepath正确初始化,但如果没有 - 编译器生成默认构造函数调用,并且membernamepath都是空的。

这是错误还是功能?

(Visual Studio 2019 16.11.8,net core 3.1 或 net 5.0)。