有两种方法可以将整数/浮点数组清零:
memset(array, 0, sizeof(int)*arraysize);
Run Code Online (Sandbox Code Playgroud)
要么:
for (int i=0; i <arraysize; ++i)
array[i]=0;
Run Code Online (Sandbox Code Playgroud)
显然,memset对于大型更快arraysize.但是,在什么时候memset的开销实际上大于for循环的开销?例如,对于大小为5的数组 - 哪个最好?第一个,第二个,甚至可能是未滚动的版本:
array[0] = 0;
array[1] = 0;
array[2] = 0;
array[3] = 0;
array[4] = 0;
Run Code Online (Sandbox Code Playgroud) 编辑:我真正需要知道的是,当用户通过后退按钮到达页面时,是否有任何javascript事件可靠地触发.我尝试了onload该body元素的事件,但它不会在Firefox或Safari上触发.
我正在使用一些旧代码,这些代码试图通过在用户单击一个按钮时禁用所有表单提交按钮(通过监听表单的onSubmit事件)来阻止表单数据的双重提交.此代码适用于应用程序中的每个表单,无论双提交是否甚至是一个问题.
问题是,如果用户点击Firefox或Safari中的后退按钮,当他到达页面时,所有提交按钮仍然被禁用.在Firefox上,刷新后它们甚至被禁用(只有Ctrl + F5刷新才能执行)!
我试过听过body这个onLoad事件,但当你通过后退按钮到达页面时,FF和Safari不会触发.(有趣的是,即使按钮保持禁用状态,它也会在FF上的软刷新时触发.)
这是一个非常简单的HTML文档,它将显示我的意思:
<html><body>
<form name="theForm" id="theForm" action="test2.html"
onSubmit="document.theForm.theButton.disabled = true;">
<input id="theButton" type="submit" name="theButton" value="Click me!" />
</form>
</body></html>
Run Code Online (Sandbox Code Playgroud)
注意:我已经使用IE8,FF3.5,Safari 4,Opera 9和Chrome 2.0在WinXP上进行了测试.只有Safari和FF在您使用返回时禁用该按钮.
现在我的安全节点定义如下:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
HTTP请求未经授权使用客户端身份验证方案"Negotiate".从服务器收到的身份验证标头是"NTLM".
我倾向于在emacs中运行我的shell,但是当我使用它来ssh到另一台计算机时,这会破坏tab-completion.有没有办法来解决这个问题?
最近迁移了托管csharpindepth.com的服务器.
大多数工作正常,但我无法进入用于举行勘误表,笔记等的数据库.
相关细节:
连接字符串:
Data Source=.;AttachDbFilename=|DataDirectory|\WebSiteData.mdf;
Integrated Security=True;User Instance=True
Run Code Online (Sandbox Code Playgroud)我只是通过创建一个新WebSiteDataContext的连接(它具有上面的连接字符串作为其默认值)
使用从包含文件的目录运行的小型测试控制台应用程序作为管理员帐户,使用相同的查询,我可以看到数据库的内容.
在ASP.NET中,我遇到了这个异常:
SqlException (0x80131904): User does not have permission to perform this action.
Run Code Online (Sandbox Code Playgroud)
编辑:更多信息,这里是堆栈跟踪:
[SqlException (0x80131904): User does not have permission to perform this action.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844759
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection …Run Code Online (Sandbox Code Playgroud) 有没有人有一个好的和有效的扩展方法来查找一系列项目是否有任何重复?
我猜我可以return subjects.Distinct().Count() == subjects.Count()使用扩展方法,但有点觉得应该有更好的方法.该方法必须对元素进行两次计数并整理所有distict元素.更好的实现应该在它找到的第一个副本上返回true.有什么好建议吗?
我想大纲可能是这样的:
public static bool HasDuplicates<T>(this IEnumerable<T> subjects)
{
return subjects.HasDuplicates(EqualityComparer<T>.Default);
}
public static bool HasDuplicates<T>(this IEnumerable<T> subjects, IEqualityComparer<T> comparer)
{
...
}
Run Code Online (Sandbox Code Playgroud)
但不太确定如何巧妙地实施它......
我需要解析可能很大的XML文件,其中的模式已经在几个XSD文件中提供给我,因此XML绑定非常受欢迎.我想知道我是否可以使用JAXB以块的形式解析文件,如果是,那么如何.
我已经查看了问题,但我还没有看到有人问这个问题.
在某些用户提交的内容中删除任何类型的XSS尝试的确定方法是什么?我知道<并且>应该分别转换为<和>但是我听说过编码差异也可以解决这个问题.
我已经实现了一个看起来像这个接口的类:
[ImmutableObject(true)]
public interface ICustomEvent
{
void Invoke(object sender, EventArgs e);
ICustomEvent Combine(EventHandler handler);
ICustomEvent Remove(EventHandler handler);
ICustomEvent Combine(ICustomEvent other);
ICustomEvent Remove(ICustomEvent other);
}
Run Code Online (Sandbox Code Playgroud)
此CustomEvent类的工作方式与MulticastDelegate非常相似.它可以调用.它可以与另一个CustomEvent结合使用.并且可以从另一个CustomEvent中删除CustomEvent.
现在,我想声明一个这样的类:
class EventProvider
{
public event CustomEvent MyEvent;
private void OnMyEvent()
{
var myEvent = this.MyEvent;
if (myEvent != null) myEvent.Invoke(this, EventArgs.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这段代码无法编译.出现编译器错误CS0066:
'EventProvider.MyEvent':事件必须是委托类型
基本上,我需要的是一个添加和删除访问器而不是get和set的属性.我认为唯一的方法就是使用event关键字.我知道一个明显的替代方案是声明两个可以进行添加和删除的方法,但我也想避免这种情况.
有谁知道这个问题是否有一个很好的解决方案?我想知道是否有任何方法可以欺骗编译器接受非委托类型作为事件.也许是自定义属性.
顺便说一句,有人在expert-exchange.com上提出了类似的问题.由于该网站不是免费的,我看不到回复.以下是主题:http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_21697455.html
我正在为Web应用程序设计一个数据库,并希望有一个可配置全局设置的表.这张桌子的设计是否有任何既定的最佳实践?我可以设想两种可能的解决方案,我相信必须有其他解决方案.
最简单的只是将键/值对存储在字符串中.这只需要两列,但不会给我任何能够为单个项添加类型约束的能力.
另一种方法是为每个设置添加一列,但是整个表只有一行,感觉有点奇怪.
在大多数情况下你是如何处理的?
c# ×3
.net ×2
asp.net ×1
benchmarking ×1
c ×1
delegates ×1
duplicates ×1
emacs ×1
events ×1
ienumerable ×1
java ×1
javascript ×1
jaxb ×1
ntlm ×1
performance ×1
permissions ×1
security ×1
shell ×1
sql ×1
sql-server ×1
wcf ×1
wcf-client ×1
xss ×1