是时候为我的项目编写GUI了,我想知道要使用什么技术.我在.NET 1和2中完成了大部分的.NET GUI开发,因此我对Windows Forms的了解相当不错.我模糊地意识到WPF,但尚未尝试"进入它".
Windows窗体死了还是死了?WPF是一项很好的学习技术吗?它是未来,只是一个阶段,还是一种可以与Windows Forms一起携手合作的技术?
此外,任何经验都会很好听,特别是那些广泛使用过的人.您是如何在两个框架中找到实现类似功能的?
可能重复:
防御性编程
今天早上我们就防御性节目的主题进行了很好的讨论.我们进行了代码审查,其中传入指针并且未检查它是否有效.
有些人认为只需要检查空指针.我质疑它是否可以在更高级别进行检查,而不是通过它传递的每个方法,并且如果该点另一端的对象不满足某些要求,则检查null是非常有限的检查.
我理解并同意检查null总比没有好,但我觉得只检查null会提供错误的安全感,因为它的范围有限.如果要确保指针可用,请检查多于null.
你对这个问题有什么经验?如何在代码中为传递给从属方法的参数编写防御措施?
这是我第一次尝试使用Eclipse插件 - 插件体系结构庞大且有点压倒性,但我发现了一些教程和如何在线帮助,但尝试执行以下操作让我疯狂:
我想在右键单击Eclipse项目时添加导航器上下文菜单中可用的子菜单项.
我可以让子菜单出现在项目文件或文件夹中,但绝对不知道如何让它出现在项目中.
有人会如此善意地为我提供一步一步的指示,从创建一个新的插件项目开始?这可能有很多要问,但我似乎无法找到具有恰当细节的在线指南.我特别想使用插件项目向导而不是手工编写plugin.xml文件,因为我不熟悉Eclipse插件架构.
我和我的朋友正在我的大学(大马士革大学)从事编译器设计工作.
我们正在使用(Flex,C++,Bison,Qt)来完成这项工作.
我想知道是否有办法使用Qt为我们的编译器设计IDE.我知道如何完成这项工作,但我要问的是,是否有一些资源可以开始,或者是否有预先设计的设计来完成这项工作.
提前致谢 :)
正则表达式对我来说是完全无效的.我现在正在TextMate中处理一个我想要它做的事情...但我不知道为什么它做了我想做的事情.
/[[:alpha:]]+|( )/(?1::$0)/g
Run Code Online (Sandbox Code Playgroud)
这在TextMate片段中使用,它所做的是获取Label并将其作为id名称输出.因此,如果我在第一个点输入"First Name",则输出"FirstName".以前它看起来像这样:
/[[:alpha:]]+|( )/(?1:_:/L$0)/g (it might have been \L instead)
Run Code Online (Sandbox Code Playgroud)
这会将"First Name"变为"first_name".所以我得到了下划线为空格添加下划线,并且/ L降低了所有内容...但我无法弄清楚其余部分的作用或原因.
有人在乎一件一件地解释它吗?
编辑
以下是有问题的实际代码段:
<column header="$1"><xmod:field name="${2:${1/[[:alpha:]]+|( )/(?1::$0)/g}}"/></column>
Run Code Online (Sandbox Code Playgroud) 我有一个与Location API相关的问题.
我尝试了以下代码:
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location loc = getLastKnownLocation(LocationManager.GPS_PROVIDER);
Run Code Online (Sandbox Code Playgroud)
loc总是null,什么时候getLastKnownLocation()叫.
怎么了?
任何人都可以将以下语法翻译为vb.net.
m_TextBox.Loaded += TextBoxLoaded
m_TextBox.Loaded -= TextBoxLoaded;
private void TextBoxLoaded(object sender, RoutedEventArgs e)
{
Init();
}
..
containsTextProp.AddValueChanged(m_TextBox, (sender, args) => UpdateAdorner());
...
private void UpdateAdorner()
{...}
Run Code Online (Sandbox Code Playgroud) 我目前正在编写一个非常轻量级的程序,所以我必须使用C++,因为它不受.NET框架的约束,这大大增加了程序的大小.
我需要能够终止进程并且这样做我需要获得进程句柄.不幸的是,我还没有想到如何做到这一点.
PS我知道要杀死进程你必须使用TerminateProcess.
作为代码标准文档的一部分,我写了一段时间,我强制执行"你必须总是使用大括号循环和/或条件代码块,甚至(特别是)如果它们只是一行."
例:
// this is wrong
if (foo)
//bar
else
//baz
while (stuff)
//things
// This is right.
if (foo) {
// bar
} else {
// baz
}
while (things) {
// stuff
}
Run Code Online (Sandbox Code Playgroud)
如果你不支持单行,然后有人评论出来,那你就麻烦了.如果你不支持单行,并且缩进在其他人的机器上显示不相同......你就麻烦了.
所以,问题:为什么这会是一个错误的或其他不合理的标准有充分的理由吗?有一些讨论,但没有人能给我一个比"感觉难看"更好的反驳.
在开发过程中,我希望处理的内容与我最终上传到Google服务器时的处理方式略有不同.
我是否可以通过快速测试来了解我是在SDK中还是在线?