问题标签 [identifier]

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 投票
3 回答
226 浏览

c# - 识别领域的“优雅”方式?

我正在编写一个系统,它是程序员应用程序的基础,需要检测他们对某些数据的访问。我主要可以使用属性来做到这一点,如下所示:

然后我进入并调整getset访问器,以便它们适当地处理访问。然而,这要求用户(应用程序程序员)将他们的所有数据定义为属性。

如果用户想要使用具有“普通”字段(而不是属性)的预先存在的类,我无法检测到这些访问。例子:

我无法检测到对y. 但是,我想允许使用预先存在的类。作为妥协,用户有责任在访问此类数据时通知我。例如:

类似的东西。相信我,我已经对此进行了非常彻底的研究,甚至直接分析字节码以检测访问由于可能存在间接等原因是不可靠的。我确实需要用户通知我。

现在我的问题是:你能推荐一种“优雅”的方式来执行这些通知吗?(是的,我知道这整个情况一开始并不“优雅”;我试图不让它变得更糟;))。你会怎么做?

这对我来说是个问题,因为实际上情况是这样的:我有以下课程:

如果用户想要这样做:

他们必须改为这样做:

WhereWrite将返回 的克隆notSoNice,这就是我希望set访问器做的事情。但是,使用字符串非常难看:如果稍后他们重构该字段,他们将不得不检查他们的Write("notSoNice")访问并更改字符串。

我们如何识别字段?我只能想到字符串、整数和枚举(也就是整数)。但:

  • 我们已经讨论过字符串的问题。
  • 整数很痛苦。它们甚至更糟,因为用户需要记住哪个 int 对应于哪个字段。重构同样困难。
  • 枚举(例如NOT_SO_NICEZ,即 的字段SemiNiceClass)易于重构,但它们要求用户为每个类(SemiNiceClass等)编写一个枚举,并为类的每个字段提供一个值。它很烦人。我不想让他们恨我;)

那么,我听到你问,为什么我们不能这样做(下)?

因为我需要知道正在访问哪个字段semiNice.notSoNice,并且不识别字段。这是字段的值,而不是字段本身。

叹。我知道这很丑陋。相信我 ;)

我将非常感谢您的建议。

提前致谢!

(另外,我无法为这个问题想出好的标签。如果您有更好的想法,请告诉我,我会编辑它们)


编辑#1: Hightechrider 的建议:表达式。

我不知道是否Write(x =>semiNice.y, 0)是基于我为我的问题(SemiNiceClass等)编写的类,还是只是一个示例,但如果是前者,它与结构不匹配:y. SemiNiceClass你的意思是Write(x =>semiNice.notSoNice.y, 0)

我不确定您对我使用它的意思...我将发布我编写的代码:

我如何获得该信息Write?我找不到任何方法从Func<,>. 另外,为什么写semiNice.Write(x => semiNice.notSoNice.y, 50);而不是semiNice.Write(() => semiNice.notSoNice.y, 50);,因为我们没有使用x任何东西?

谢谢。


编辑#2: Hans Passant 的建议:用属性替换字段。

这是我最初打算做的,但重新编译不是一种选择。


编辑#3:Ben Hoffstein 的建议:动态代理;林福。

我已经对此进行了漫长而艰难的研究,并且由于相对复杂的原因我无法使用它。解释太长了,但请放心:如果我可以使用它,我会的。它比我目前的解决方案要整洁得多。

0 投票
2 回答
4228 浏览

xml - 使用包含下划线的节点解析 XML

如何解析包含存在下划线的节点的 XML 文档?

我试过这个:

但这似乎不起作用。我也无法更改 XML,因为它来自第三方。任何帮助都会很棒。提前致谢!

0 投票
7 回答
4468 浏览

java - 使用 unicode 符号作为 Java 标识符是个好主意吗?

我有一个如下所示的代码片段:

在 Java 标识符中使用 unicode 字符是多么糟糕的想法?或者这是完全可以接受的吗?

0 投票
7 回答
562 浏览

jquery - 使用没有相应 CSS 规则的 CLASS 属性是不是很糟糕?

例如,如果我想使用 jQuery 选择具有特定类的一些元素,并且仅出于这个原因,是否总是期望这些类应该在 css 中定义?

0 投票
3 回答
2460 浏览

c++ - C++ 从字符串到对象标识符的转换

我正在用 C++ 编写一个程序,它从外部文件中读取一些数据以设置静态变量的值。

是否可以将字符串转换为对象标识符?(例如,将字符串“CheckBox::Unchecked”转换为对象 CheckBox::unchecked 的标识符)

0 投票
1 回答
720 浏览

php - 如何从 imap 中检索具有一致 id(消息 id)的特定消息

我需要为电子邮件保留链接跟踪。我正在使用 PHP 和 IMAP。我需要一些标识随着时间的推移来识别电子邮件的 ID。使用 IMAP UID 似乎不起作用,因为在 expunge() 之后 UID 发生了变化,我知道电子邮件有一个 message_id,但是我如何使用它的 message_id 和 PHP 和 IMAP 检索电子邮件?

我可以使用另一个标识符吗?

0 投票
3 回答
420 浏览

java - 为什么标识符中不允许使用 #?

Java 允许标识符以 $ 开头或包含 $(美元符号)。例如 int a$b;

但是为什么在标识符中不允许使用 # 呢?具体原因是什么?# 是 Java 中的运算符还是什么?例如 int a#b;

0 投票
3 回答
395 浏览

php - 如果不附加,则检查名称是唯一的

我的应用程序要求用户输入他们的公司名称,应用程序将自动创建一个唯一标识符以在 URL 中使用,即

“鲍勃咖啡馆”将成为“鲍勃咖啡馆”

但是如果有重复的名字,我希望应用程序添加一个数字,所以如果已经有一个“bobs-cafe”,我们将使用“bobs-cafe-1”,同样如果已经有一个“bobs-cafe-1”我们将使用“bobs-cafe-2”

我使用了explode,也查看了正则表达式,但我不知道解决这个问题的最佳方法。

我坚持能够抓住数字并增加它并返回字符串

0 投票
2 回答
109 浏览

apache-flex - 通用标识符

因为我可能没有用正确的术语描述这个问题,所以我无法通过谷歌得到答案。请包涵!

在下面的代码中,我想用变量editedField 替换“硬编码”标识符COMMENT。怎么做?

0 投票
2 回答
4372 浏览

sql - 当我在数据库名称中包含数字字符时,用于创建数据库的 SQL Server 查询给了我一个错误

我在Microsoft SQL Server 2005中运行简单的 sql 查询以创建数据库时遇到问题,我不知道为什么。

当我运行这个查询

我收到此错误

'4444' 附近的语法不正确。

如果要创建名称中包含数值的数据库表,是否有任何特别需要指定的内容?还是我忘记了什么?