我正在用C#编写一个自定义类,如果人们在某些方法中给出错误的输入,我会抛出几个例外.如果抛出异常,抛出后方法中的任何代码仍会被执行吗?我必须在投掷后休息一下,还是投掷总是退出方法?
这是针对当前0.6 Rust的干线,不确定确切的提交.
假设我想在每个字符串中使用,并且我的闭包采用了一个借用的字符串指针参数(&str).我希望我的闭包将其参数添加到拥有的字符串〜[〜str]的拥有向量中以便返回.我对Rust的理解很弱,但我认为字符串是一个特殊情况,你不能用*右解引它们?如何将我的字符串从&str转换为vector的push方法,该方法需要~str?
这是一些无法编译的代码
fn read_all_lines() -> ~[~str] {
let mut result = ~[];
let reader = io::stdin();
let util = @reader as @io::ReaderUtil;
for util.each_line |line| {
result.push(line);
}
result
}
Run Code Online (Sandbox Code Playgroud)
它不会编译,因为它推断结果的类型是[&str],因为那是我正在推动的.更不用说它的生命周期是错误的,因为我正在添加一个寿命较短的变量.
我意识到我可以使用ReaderUtil的read_line()方法返回一个~str.但这只是一个例子.
那么,如何从借来的字符串中获取拥有的字符串?或者我完全是误解.
我正在尝试将列表传递给Lisp中的函数,并在函数内更改该列表的内容,而不会影响原始列表.我已经读过Lisp是按值传递的,这是真的,但还有其他事情我不太明白.例如,此代码按预期工作:
(defun test ()
(setf original '(a b c))
(modify original)
(print original))
(defun modify (n)
(setf n '(x y z))
n)
Run Code Online (Sandbox Code Playgroud)
如果你调用(测试),即使(修改)返回(xyz),它也会打印(abc).
但是,如果您尝试仅更改列表的一部分,则无法正常工作.我认为这与列表中的内容在内存中相同或者类似的内容有关?这是一个例子:
(defun test ()
(setf original '(a b c))
(modify original)
(print original))
(defun modify (n)
(setf (first n) 'x)
n)
Run Code Online (Sandbox Code Playgroud)
然后(测试)打印(xbc).那么如何更改函数中list参数的某些元素,就好像该列表是该函数的本地列表一样?
lisp function common-lisp parameter-passing pass-by-reference
我目前正在进行项目的全球化进程(.net mvc2应用程序),全球化对我来说有点新鲜.我注意到DateTime.ToString()在为某些文化格式化时,可能会导致过去或将来的值太过ArgumentOutOfRangeException.特别是,用于"ar"和"ar-SA"(UmAlQuraCalendar)的日历具有非常有限的最小和最大支持日期.使用UmAlQuraCalendar时,1930年4月之前或2029年5月之后的任何日期都会导致此问题.这很容易观察到:
DateTime.ParseExact("1900", "yyyy", CultureInfo.InvariantCulture).ToString("G", new CultureInfo("ar"));
Run Code Online (Sandbox Code Playgroud)
请原谅我对这个问题的无知,但我想知道这里的最佳做法是什么.如果我可以在1930年之前表示日期而不必在每次打印日期时添加异常处理,我希望如此,但我也想尊重用户的文化.这是切换这些文化的日历的最佳选择吗?从一些谷歌搜索看来,可选提供的HijriCalendar与UmAlQuraCalendar非常相似,但是具有更宽松的最小和最大支持日期.这是很多人遇到的问题吗?我对这个特殊问题没有多少建议.如果没有一些建议,我会犹豫是否只是随心所欲地改变这些文化中使用的默认日历.
在Semaphore的WaitOne(Int32)方法的MSDN文档中,它表示给它一个值为零将导致该方法立即返回而不等待一个槽打开.SemaphoreSlim版本的文档没有说同样的事情.SemaphoreSlim会分享这种行为吗?
我不确定如何保证自己测试的时机.
我正在尝试使用弹性beanstalk将简单的Hello World ASP.NET MVC 4应用程序部署到免费的层EC2实例.我正在使用不支持AWS Toolkit扩展的Visual Web Developer Express(2010),那么如何在没有扩展的情况下部署站点?
看来,通过Elastic Beanstalk Web控制台,您可以将文件上传为新的应用程序.但我无法弄清楚文件中应该包含的内容.它是一个包含已发布的mvc应用程序的zip吗?我试过了,当它加载后导航到实例时,它只显示了IIS 8徽标.在演练页面上有一个示例zip,但它是一个旧的ASP.NET页面,在根目录中有3个xml文件.我不知道在MVC,.NET 4,Server 2012或IIS 8的那些文件中要更改什么.我无法在任何地方找到此信息.
我尝试手动创建一些EC2实例,自行远程处理和部署站点.但是,免费的Windows Server 2008映像没有.NET 4.而免费的Windows Server 2012映像没有IIS ...我无法弄清楚如何实际部署我的站点.
web-deployment amazon-web-services asp.net-mvc-4 amazon-elastic-beanstalk
我有一个Action类,它包含更多Action对象的集合.像这样的东西:
public class Action
{
ICollection<Action> SubActions;
}
Run Code Online (Sandbox Code Playgroud)
这基本上形成了一个树形结构(我确保没有循环).我使用Fluent Validation为这个类编写验证器.这是我的Validator尝试:
public class ActionValidator : AbstractValidator<Action>
{
public ActionValidator()
{
RuleFor(x => x.SubActions).SetCollectionValidator(new ActionValidator());
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试解决依赖于ActionValidator的任何事情时,Unity会爆炸.更具体地说,LINQPad在尝试解析依赖于ActionValidator的服务时崩溃,可能是来自堆栈溢出.
在我的Action类中还有其他成员我正在验证,但我只是为了简洁起见重要部分.如果我注释掉我在这里列出的规则,它可以正常工作(除了它不再验证子动作).
我的方法遇到了问题.我递归地构造验证器直到某些东西死亡.但我只是不确定如何告诉Fluent Validation以这种方式验证子对象.
我正在用Java编写一些遗传算法作为学校作业.到目前为止,我几乎坚持做控制台应用程序.但是我认为UI对这个程序真的很有帮助,所以我想制作一个.我无法弄清楚如何协调事件驱动的GUI和具有开始和结束的控制台应用程序.
理想情况下,我想要一组用于设置的文本框,然后是一个"开始"按钮.一旦你点击开始,算法将开始运行,GUI将在设定的时间间隔内更新最新的程序状态.如果没有算法冻结GUI,反之亦然,我怎么做到这一点?我不希望任何一个人等着另一个.
在算法运行时如何让主循环不冻结GUI?我假设他们需要在不同的线程中,但我以前从未搞过线程.这对于这项任务来说似乎过于复杂,这一点必须是司空见惯的.
.net ×3
c# ×2
.net-4.0 ×1
asp.net-mvc ×1
break ×1
common-lisp ×1
concurrency ×1
cultureinfo ×1
datetime ×1
exception ×1
function ×1
java ×1
lisp ×1
loops ×1
pointers ×1
rust ×1
semaphore ×1
string ×1
throw ×1