使用下划线对变量和方法名称进行前缀是将事物标记为私有的常见约定.为什么Google Analytics跟踪代码(ga.js)中的网页跟踪器类中的所有方法都以下划线开头,即使是那些明显公开的,_getTracker也是如此_trackPageView?
我有一个Windows窗体,最初加载需要相当多的时间.但是,每个后续加载表单的请求都不会花费太长时间.有没有办法优化Form的加载时间?
一位前同事坚持认为,每个数据库中包含更多列的表更少,每个表更少的表更少.例如,而不是具有名称,地址,城市,州,邮政等列的客户表,您将拥有名称表,地址表,城市表等.
他认为这种设计更有效,更灵活.也许它更灵活,但我没有资格对其效率发表评论.即使效率更高,我认为增加的复杂性可能会超过这些收益.
那么,对于包含更少列的更少列的更少列,是否有任何显着优势?
1167 ptr = (void*)getcwd(cwd, MAX_PATH_LENGTH-1);
(gdb) n
1168 if (!ptr) {
(gdb) print ptr
$1 = 0xbff2d96c "/media/MMC-SD/partition1/aaaaaaaaaaa"
(gdb) print &cwd
$2 = (char (*)[3500]) 0xbff2d96c
(gdb) print strlen(cwd)
$3 = 36
(gdb) print "%s",cwd
$4 = "/media/MMC-SD/partition1/aaaaaaaaaaa", '\0' <repeats 912 times>, "??O?001\000\000\000\000??027\000\000\000?3????EL?3?000??027\000\000\000\000\000\000\000\027\000\000\000\000??/?027\000\000\000?3????N????\230????3?000??027\000\000\000\000\000\000\000??000\000\000\000\001\000\000\000??M?3????\000\000\000\000.\231?027??w\005\b\001\000"...
(gdb) print "%s", ptr
$5 = 0xbff2d96c "/media/MMC-SD/partition1/aaaaaaaaaaa"
(gdb) Quit
Run Code Online (Sandbox Code Playgroud)
为什么ptr正确打印字符串但不是cwd; 如果我尝试使用cwd,这也会影响程序并崩溃...
[编辑:事实证明崩溃是由于此变量上的一个愚蠢的缓冲区溢出... grr ...而不是gdb,但打印问题仍然有效]
我是所有匿名功能的新手,需要一些帮助.我有以下工作:
public void FakeSaveWithMessage(Transaction t)
{
t.Message = "I drink goats blood";
}
public delegate void FakeSave(Transaction t);
public void SampleTestFunction()
{
Expect.Call(delegate { _dao.Save(t); }).Do(new FakeSave(FakeSaveWithMessage));
}
Run Code Online (Sandbox Code Playgroud)
但这完全是丑陋的,我想让Do的内部成为匿名方法,甚至是lambda,如果有可能的话.我试过了:
Expect.Call(delegate { _dao.Save(t); }).Do(delegate(Transaction t2) { t2.Message = "I drink goats blood"; });
Run Code Online (Sandbox Code Playgroud)
和
Expect.Call(delegate { _dao.Save(t); }).Do(delegate { t.Message = "I drink goats blood"; });
Run Code Online (Sandbox Code Playgroud)
但这些给了我
无法将匿名方法转换为类型'System.Delegate',因为它不是委托类型**编译错误.
我究竟做错了什么?
由于马克·英格拉姆发布的内容,似乎是最好的答案,尽管没有人明确说过,但这样做是:
public delegate void FakeSave(Transaction t);
Expect.Call(delegate { _dao.Save(t); }).Do( new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));
Run Code Online (Sandbox Code Playgroud) 如今,面向服务的体系结构似乎越来越热门,但在办公室询问后,我发现我似乎得到了许多不同的定义.你们如何定义SOA?您认为官方定义是什么?
我有下一张桌子.groups表包含按层次排序的组和group_member,用于存储用户所属的组.
groups
---------
id
parent_id
name
group_member
---------
id
group_id
user_id
ID PARENT_ID NAME
---------------------------
1 NULL Cerebra
2 1 CATS
3 2 CATS 2.0
4 1 Cerepedia
5 4 Cerepedia 2.0
6 1 CMS
ID GROUP_ID USER_ID
---------------------------
1 1 3
2 1 4
3 1 5
4 2 7
5 2 6
6 4 6
7 5 12
8 4 9
9 1 10
Run Code Online (Sandbox Code Playgroud)
我想检索给定用户的可见组.这就是说用户属于的组和这些组的子组.例如,使用以上数据:
USER VISIBLE_GROUPS
9 4, 5
3 1,2,4,5,6
12 5 …Run Code Online (Sandbox Code Playgroud) 我维护了一个用Delphi 7编写的旧PC应用程序.虽然Delphi过去很好用,但我现在只将它用于这个应用程序,并发现我的技能随着语言的减少而减少.它的语法与我在Java/Ruby的"日常工作"语言上有太大的不同,所以我需要更长时间才能进入编写新代码的过程中,而且它已经很老了我没有使用过很多接口,所以代码不能管理我现在看起来很古老!
我的许多用户都转向Vista,它可能在兼容模式下运行应用程序,或者可能有GPF问题,这取决于他们的IT部门如何配置他们的PC,因此我必须对应用程序进行一些维护.我想知道我是否应该跳到更熟悉的堆栈.
是否有一个自动化工具可以完成将代码库转换为C#的工作,让我专注于任何非标准组件的转换?我正在使用一个名为AbsoluteDatabase的嵌入式数据库组件,该组件兼容BDE并使用标准SQL,以及一个本机Delphi HTML浏览器组件,可以与Microsoft世界中的某些东西进行交换.
这些转换工具有多好?