小编ten*_*npn的帖子

C#中的"const正确性"

const-correctness的要点是能够提供用户无法更改或删除的实例的视图.编译器支持这一点,指出何时从const函数中断开constness,或者尝试使用const对象的非const函数.因此,如果不复制const方法,我可以在C#中使用具有相同目的的方法吗?

我知道不变性,但这并不能真正地将容器对象转移到一个例子.

c# theory const-correctness

78
推荐指数
3
解决办法
1万
查看次数

如何获取特定属性的PropertyInfo?

我想获取特定属性的PropertyInfo.我可以用:

foreach(PropertyInfo p in typeof(MyObject).GetProperties())
{
    if ( p.Name == "MyProperty") { return p }
}
Run Code Online (Sandbox Code Playgroud)

但必须有办法做类似的事情

typeof(MyProperty) as PropertyInfo
Run Code Online (Sandbox Code Playgroud)

在那儿?还是我坚持做一个类型不安全的字符串比较?

干杯.

c# reflection

77
推荐指数
3
解决办法
6万
查看次数

使用Powershell自动化以PAUSE结尾的bat文件

我有一个我无法更改的批处理文件,但我希望使用Powershell 2.0进行自动化.它以一个PAUSE命令结束,该命令显示:

Press any key to continue...

有没有办法从powershell脚本调用这个批处理文件,但让它退出而不需要用户按某些东西?

powershell batch-file powershell-2.0

17
推荐指数
1
解决办法
2279
查看次数

通过Clojure中的任意函数管道数据

我知道该->表单可用于将一个函数结果的结果传递给另一个:

(f1 (f2 (f3 x))) 
(-> x f3 f2 f1) ; equivalent to the line above
Run Code Online (Sandbox Code Playgroud)

(取自ociweb优秀的Clojure教程)

但是,此表单要求您知道要在设计时使用的功能.我想做同样的事情,但在运行时使用任意函数列表.

我已经编写了这个循环函数,但是我觉得有更好的方法:

(defn pipe [initialData, functions]
  (loop [
      frontFunc (first functions)
      restFuncs (rest functions)
      data initialData ]
    (if frontFunc
      (recur (first restFuncs) (rest restFuncs) (frontFunc data) )
      data )
  ) )
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

clojure

16
推荐指数
2
解决办法
1393
查看次数

如何在团结游戏中使用非主要活动来捕获自定义网址?

当有人点击"com.foo.bar://testtest"表单的网页中的链接时,我希望它打开我的统一游戏并让我获取测试数据.

我是一名经验丰富的程序员,但是当涉及到android时,我有点谷歌而不是真正理解任何东西.记住这一点.:)

我可以使用intent-filters对android上的链接做出反应.但是,我发现的所有资源都假设您可以扩展主要活动以捕获新意图.团结可以做到这一点,但出于各种原因,我宁愿不这样做.我尝试创建一个新活动,将其导出到jar,然后将其添加到应用程序标记中的清单:

<activity android:name="com.foo.ProtocolCatcher"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <data android:scheme="com.foo.bar" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

点击链接成功启动了我的游戏,但是在黑屏上.

编辑:我也试过这种格式没有改变:

<activity android:name="com.foo.ProtocolCatcher"
          android:label="@string/app_name">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="com.foo.bar" />
  </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

使整个游戏启动以及我的自定义活动有什么神奇的咒语,让我的自定义活动读取传入的URL,而不触及主要活动?

java android uri unity-game-engine android-intent

12
推荐指数
1
解决办法
703
查看次数

在值下方找到浮点数

假设我有一个浮点数X.我想找到小于X的最大数字,并且可以无损地存储在浮点数中.

IIRC IEEE标准说你可以通过将float的位转换为int表示,减去1,然后转换回float来实现.

(编辑:对于不是NaN或inf的正数,这是正确的.对于负数,您必须添加.有关更多信息,请参阅Rawling的答案.)

要在表示之间进行更改,我只知道C#的(强制转换)运算符,它会截断.那不是我想要的.

有没有办法在C#中做到这一点?

c# floating-point

8
推荐指数
1
解决办法
1230
查看次数

在OSX中使用mdtool构建Unity游戏时,Corlib不同步

Unity3D是一款流行的游戏引擎,它安装了单声道(和monodevelop)版本.最近我安装了Xamarin Studio,热衷于玩它.后来我通过sln目录中的命令行跟踪了一些在线指南,用于构建Unity的SLN文件:

/Applications/Unity/MonoDevelop.app/Contents/MacOS/mdtool build -t:Build 
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

Rewriting config files...
Corlib not in sync with this runtime: expected corlib version 636, found 96.
Loaded from: /Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/2.10.2/lib/mono/2.0/mscorlib.dll
Download a newer corlib or a newer runtime at http://www.go-mono.com/daily.
Run Code Online (Sandbox Code Playgroud)

我认为Xamarin Studio带来了一个新的单声道运行时,它是版本636.我正在运行mdtool预期版本96,因为Unity附带了旧版本的单声道(.net 3.5我认为?).

所以我卸载了Xamarin Studio,并重新安装了Unity,希望用旧版本覆盖单声道运行时.仍然得到错误.

我注意到mscorlib.dll不是从中拉出来的Frameworks/Mono.framework/Versions/Current,而是2.10.2.这是为什么?如何使这个构建工作?我能给你的更多信息吗?

macos mono unity-game-engine

8
推荐指数
0
解决办法
532
查看次数

将Emacs变量传递给minibuffer shell命令

我可以通过点击快速运行shell命令M-!.我想做的一件事是对当前文件执行shell快速操作.一个例子是通过perforce检查文件:

M-! p4 edit buffer-file-name RET

(是的,有perforce集成,但我对minishell/variable问题而不是特定的工作流更感兴趣)

当然,buffer-file-name在将命令发送到shell之前不会评估变量.

有一个简单的即时方式来做到这一点?或者我是否必须推出自定义elisp功能?

emacs emacs23

7
推荐指数
2
解决办法
2038
查看次数

jinja/ansible模板中的复杂字符串连接

我有一个看起来像这样的ansible dict:

servers:
  - name: foo
    port: 1000
  - name: bar
    port: 2000
Run Code Online (Sandbox Code Playgroud)

我想要一个ansible/jinja2模板来输出这个:

result=pre-foo-1000,pre-bar-1000
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有类似的东西:

result={{ servers | json_query('[*].name') | join(',') }}
Run Code Online (Sandbox Code Playgroud)

但那只输出:

result=foo,bar
Run Code Online (Sandbox Code Playgroud)

我尝试了一些json_query('[*].name-[*].port')没有成功的事情- 它给出了关于无效-文字的错误.我在json_query上找不到很多文档,但是我能在那里做更多的事情吗?或者更好的选择滑入过滤器?

template-engine jinja2 ansible

7
推荐指数
1
解决办法
5336
查看次数

Helm在日晒黑暗中选择难以理解的高光颜色

在使用冰柱很长一段时间后,我正在试验舵.

我大部分时间默认使用流行的曝光深色配色方案,并且helm似乎选择了特别难以理解的颜色:

掌舵中暗黑色

...我怎么能建议掌舵选择更有用的颜色?希望当我切换到日光灯时也能正常工作.

emacs color-scheme emacs-helm

6
推荐指数
1
解决办法
1659
查看次数