问题标签 [wrapper]

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 回答
372 浏览

.net - .NET 中的包装器类型:结构还是类?

考虑以下场景:

struct现在,在和之间进行选择的一般建议class是“struct在需要值语义和class引用语义时使用”。我们需要的语义是“引用Wrappee”。但似乎我们仍然可以制作Wrapper一个结构体:复制它的值和复制一个引用是一样的Wrappee,而且复制后的引用将指向同一个对象!开销较低,并且标量替换可能能够将局部变量的开销减少到零。似乎可以在_wrappee.

我错过了什么吗?是否有充分的理由改为Wrapper上课?

如果调用者不是通用的,则有一个:

在这种情况下Wrapper应该是一个类来避免拳击。

对了解 Haskell 的人的备注:我正在尝试找到与 .NET 最接近的 .NET 类似物newtype

更新:请参阅MSDN 论坛上的Professional .NET 2.0 Generics和Peter Ritchie,了解第一种情况下没有拳击。

0 投票
2 回答
1442 浏览

java - 最快的 Java 应用服务包装器

我正在寻找性能最高的 Java 服务包装器,它可以使 Java 应用程序在 Linux 上作为服务运行。

任何人都可以推荐这样的实用程序。

谢谢。

0 投票
3 回答
1289 浏览

objective-c - 表示 BOOL 包装器的方法?

在 Objective-C 中,有没有办法表明 NSNumber* 实际上应该是 BOOL?现在我的代码看起来像:

没有注释,*audio 是一个布尔值并不是很明显。

我的第一个想法是尝试

但这显然给出了编译器错误,因为 typedef 不理解 Objective-C。

在不更改变量名称的情况下(在使用现有 API 时这很困难),我应该如何指示 NSNumber* 拥有一个布尔值?

0 投票
1 回答
1311 浏览

c# - 可分发 dll 的 C# 类包装器

我有一个 C# 库,我想使用包装 dll 进行分发,该 dll 提供比类本身更多的功能。

我希望能够从类库中创建一个对象,并将其与另一个项目中的包装 dll 一起使用,如下所示:

如果我在项目中包含我的包装器 dll 和类库 dll,我可以做到这一点。但是,我希望能够有 1 个可分发的 dll 来完成此操作。有没有办法在不包括在包装器中重新定义我的类库类的情况下执行上述操作?

希望这有点清楚。感谢您的任何建议。

0 投票
5 回答
12309 浏览

css - CSS 动态高度

我有三个 div 标签,一个包装器和两个并排的包装器:

我想创建<div id="left">标签是可变高度的条件,拉伸包装。

结果,<div id="right">将扩展到包装器的任何高度。

什么 CSS 将完成此任务?谢谢!

0 投票
8 回答
329 浏览

java - 是否有一个标准类包含引用并提供 getter 和 setter?

对不起这个愚蠢的问题。

我很确定,Java API 提供了一个包含引用的类,并为它提供了一个 getter 和一个 setter。

我对吗?Java API中有这样的东西吗?

谢谢你。

是的,我可以自己写,但我为什么要模仿现有的功能呢?

编辑:我想将它用于引用参数(如 C# 中的ref关键字),或者更具体地说,能够“写入方法参数”;)

0 投票
2 回答
4860 浏览

java - Mac OS X 64 位上的 Java Service Wrapper 3.2.3

在 Mac OS X 64 位上使用 Java Service Wrapper 3.2.3 运行应用程序的最佳方式是什么?

sh.script.in工作,但没有包装本机二进制文件的macosx-universal-64版本(无论如何在JSW的3.2.3下载页面上http://wrapper.tanukisoftware.org/downloads/3.2.3/)。

结果是日志中出现以下错误:

此外,当我尝试重新启动系统时,我收到如下错误:

我无法升级到更新版本的 JSW,因为他们采用了 GPL。

0 投票
3 回答
522 浏览

c++ - 如何修改不可变对象?

抱歉,我想不出这个问题的好标题...

在应用程序启动时,我通过数据库访问库从数据库加载对象,让我们调用它们的类CDbObject

在运行时,我收到与这些数据库对象中的状态更改相对应的消息。
我想最小化数据库访问,因此当它的状态改变时不重新加载完整的对象。
相反,我想包装 DB 对象并以某种方式使它们可修改。
我不能简单地派生一个类、实现一个setState()方法并创建该类的对象,因为我必须使用 DB 访问库给我的对象。这些对象没有实现复制机制,如果可能的话,我根本不想碰那个代码。

我可以创建一个包装类来存储指向 CDbObject 实例的指针,如下所示:

但明显的缺点是,我必须复制包装类的完整接口。
为了避免重复接口,我可以提供对包装对象的访问,但这使得包装器实际上毫无用处,因为如果用户不够谨慎,他可能会得到错误的状态。

有没有一种优雅的方式来完成我想要的?

编辑:

简而言之:我想让它对存储对象状态的用户透明。用户应通过调用一种方法获得当前状态。我希望这使它更清楚一点。

0 投票
1 回答
705 浏览

mysql - 如何通过 IO 重定向创建 /usr/bin/mysql 包装程序?

目前,我对命令行程序 /usr/bin/mysql 非常不满意!它不会,例如,让我利用:

(a) 各种 Unix 工具(如 grep、sed...),以及

(b) Unix 概念,例如 io 重定向、管道。

(顺便说一句,IIRC,Sybase 的命令行 shell,用于允许管道和足够强大的 Unix 风格的命令行使用。)

所以......我想知道,是否可以自己为这个吸盘创建一个外壳包装?

我的第一个版本看起来像这样。

示例用法:

  1. 现在,虽然我可以通过对自己说......分号';'之前的任何内容来添加管道/重定向功能 在 read() 的用户输入中将是 SQL,以及 ';' 之后的任何内容 将是直接传递给上面的 eval() 的 Unix shell 结构。但是,我不确定这是否是最好的方法

  2. 另一个仍然存在的非常严重的限制是:将没有会话的概念......由于在 while 循环的每次迭代中都对 /usr/bin/mysql 进行了新的调用。所以,我真正想做的是:(a)启动一个 /usr/bin/mysql 的单个实例,以及(b) 以某种方式将 /usr/bin/mysql 的 stdin、stdout、stderr 流连接到我的包装程序。 现在,这个特技可能吗?请注意,我尝试了 [sd@host:~/tmp] $ mysql -uSD 2>&1 | tee sql.out 并且它没有按“预期”工作。意思是,我没有在我的 sql.out 文件中获得熟悉的 mysql 交互消息,所以想知道这里发生了什么!

  3. 如果通过 shell (bash) 无法做到这一点,是否可以通过 C 程序来完成...?例如,使用 MySQL 的 C API 打开数据库连接,然后通过该连接提供会话感?

  4. Perl 能帮上忙吗?

非常感谢您的收听。

0 投票
1 回答
1928 浏览

c - 用 Objective-C 包装 C 库 - 函数指针

我正在用 Objective-C 编写一个 C 库的包装器。该库允许我在某些事件发生时注册回调函数。

register_callback_handler() 函数将函数指针作为参数之一。

我对编程大师的问题是:如何将 Objective-C 方法调用/选择器表示为函数指针?

  • NSInvocation 会在这种情况下有用还是级别太高?
  • 我最好只编写一个 C 函数,其中写有方法调用,然后将指针传递给该函数?

任何帮助都会很棒,谢谢。