我创建了一个项目,它是C#控制台应用程序项目,我需要在另一个Windows应用程序项目中调用此项目dll.我在visual studio 2010中构建了项目并检查了.dll
bin\debug文件夹中的文件,但是没有创建它.
但是已经.exe
创建了清单文件和文件.请帮助我.dll
在这种情况下创建如何创建.
是否可以将OrderedDict实例传递给使用**kwargs
语法并保留排序的函数?
我想做的是:
def I_crave_order(**kwargs):
for k, v in kwargs.items():
print k, v
example = OrderedDict([('first', 1), ('second', 2), ('third', -1)])
I_crave_order(**example)
>> first 1
>> second 2
>> third -1
Run Code Online (Sandbox Code Playgroud)
但实际结果是:
>> second 2
>> third -1
>> first 1
Run Code Online (Sandbox Code Playgroud)
即,典型的随机字典排序.
我有其他用途明确设置顺序是好的,所以我想保留**kwargs
而不是仅仅将OrderedDict作为常规参数传递
我正在研究做一些Unity3D脚本的东西,我想建立全局异常处理系统.这不是为了在游戏的发布版本中运行,目的是捕获用户脚本和编辑器脚本中的异常,并确保将它们转发到数据库进行分析(以及向相关开发人员发送电子邮件,以便他们可以修复他们的shizzle).
在一个vanilla C#应用程序中,我有一个围绕Main方法的try-catch.在WPF中,我将挂钩一个或多个未处理的异常事件.在Unity ......?
到目前为止,我能想出的最好的是这样的:
using UnityEngine;
using System.Collections;
public abstract class BehaviourBase : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
try
{
performUpdate();
print("hello");
}
catch (System.Exception e)
{
print(e.ToString());
}
}
public abstract void performUpdate();
}
Run Code Online (Sandbox Code Playgroud)
在其他脚本中,我派生出BehaviourBase而不是MonoBehavior,并实现performUpdate()而不是Update().我没有为Editor clases实现并行版本,但我认为我必须在那里做同样的事情.
但是,我不喜欢这种策略,因为我必须将它反向移植到我们从社区中获取的任何脚本(我将不得不在团队中执行它).编辑器脚本也没有与MonoBehavior相当的单一入口点,因此我假设我必须实现向导,编辑器等的异常安全版本.
我已经看到了使用Application.RegisterLogCallback捕获日志消息(而不是异常)的建议 ,但这让我感到不舒服,因为我需要解析调试日志字符串而不是访问实际的异常和堆栈跟踪.
那么......做对的是什么?
我有一个函数需要在一个相当紧密的循环中执行,所以它对性能很敏感。它的过滤功能旨在节省更昂贵的工作。大多数功能只是对静态列表的检查。
所以(去掉一些不相关的细节)我可以在这里做两件不同的事情:
def my_filter(arg):
SAFE_VALS = {
'a',
'b',
'f',
'i',
'm'
}
# the real list is much larger, but
# it is a static set like the above...
return arg in SAFE_VALS
Run Code Online (Sandbox Code Playgroud)
或者
# make this a module level constant
SAFE_VALS = {
'a',
'b',
'f',
'i',
'm'
}
def my_filter(arg):
return arg in SAFE_VALS
Run Code Online (Sandbox Code Playgroud)
我知道 Python 将不得不查看更高的范围级别才能找到模块级别的版本——但我不知道的是,my_filter
每次运行函数时,编译版本是否有效地重新创建了这个集合,或者文字是否“烘焙” in" 到函数 def. 如果每次调用都分配一个新集合,那么我感觉使用模块级版本会更好——如果不是,我不会通过将文字提升到函数范围之外而获得任何好处。
现在分析数据足够嘈杂,我没有看到明显的区别。但是,如果该集合包含更多的长字符串,我会吗?或者,这些形式之间是否存在显着差异?