小编key*_*rdP的帖子

数组大小调整是否会调用GC?

我查看了Array.Resize()的实现,并注意到创建并返回了一个新数组.我的目标是在游戏过程中零内存分配,所以我需要避免创建任何新的引用类型.调整数组大小会触发前一个数组上的垃圾收集器吗?我正在创建自己的2D数组缩放器,但它本质上与.NET Resize()方法的功能相同.

如果新数组小于前一个数组,但多余的对象已经放回到通用对象池中,这会调用GC吗?

数组将不断在我的游戏循环中创建,因此我需要尽量使其尽可能高效.我正在尝试创建一个array pool这样的,所以没有必要继续创建它们.但是,如果resize方法做了同样的事情,那么不仅仅实例化一个新数组而不是拥有池是没有意义的.

谢谢您的帮助

.net c# arrays xna garbage-collection

9
推荐指数
1
解决办法
1840
查看次数

重置ASP.NET密码 - 安全问题?

我已经看到有关这个问题的各种问题,但有几个问题没有被问到.如果用户忘记了密码,我希望他们能够仅使用他们的电子邮件地址重置密码(即没有安全问题/答案).密码存储为salted哈希,因此无法恢复.相反,我只是希望用户在确认他们已请求重置后输入新密码.

一个常见的方法是简单地说:

1)创建一个随机的Guid/Cryptographically强随机数

2)将包含随机数的唯一URL发送到用户的电子邮件地址

3)确认后,要求用户更改密码

但是,这不是开放的MITM攻击吗?如果通过互联网向电子邮件发送临时密码是不安全的,那么这样做与仅发送攻击者可以导航到的唯一URL之间的区别是什么?我是否错过了一个可以使这个系统更安全的关键步骤(或者是否有更好的方法来重置密码)?

谢谢

asp.net security asp.net-membership forgot-password password-recovery

8
推荐指数
2
解决办法
3860
查看次数

Android模拟器替代方案

我对Android开发完全不熟悉,但我刚买了一个HTC Hero,想为它开发一些应用程序.但是,我使用笔记本电脑作为我的开发机器,模拟器非常慢.启动大约需要10-15分钟,虽然我可以将其打开,但在使用其他应用程序(如Web浏览器/ E​​clipse IDE等)时通常会降低系统速度.为Android开发的最佳方法是什么?电话?我可以简单地插入HTC并不断加载新的APK,但这似乎太长了一个测试微小变化的过程.有没有其他方法可用于调试应用程序,或者我必须勇敢地使用模拟器,直到我可以获得新系统?谢谢

performance android android-emulator

5
推荐指数
1
解决办法
8911
查看次数

从我的应用程序启动外部应用程序

我想启动用户在我的应用程序中选择的应用程序.但是,我不确定我该怎么做.我试过这个:

Intent intent = new Intent();
intent.setAction(Contacts.Intents.SHOW_OR_CREATE_CONTACT);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但这似乎抛出一个错误并强行关闭我的应用程序.我也尝试过添加:

<action android:name="Contacts.Intents.SHOW_OR_CREATE_CONTACT"/>
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest文件中,但无济于事.

看一下Logcat就会发现它是"IOexception - 没有这样的文件或目录".由此产生了几个问题.我阅读了Android文档并注意到不推荐使用Contact.Intents类.然而,它是继承者,ContactContracts针对API级别5,而我的目标是API级别3.这可能是问题吗?此外,我已将此应用程序硬编码到代码中.有没有办法检索用户选择的任何应用程序的意图,以便它们可以启动?

android launching-application android-intent

5
推荐指数
1
解决办法
1万
查看次数

AudioPlayerAgent不支持的API

我想在我的"我的"中使用这个"不支持的后台代理API"页面上列出的各种API AudioPlayerAgent.那页专门提到ScheduledTaskAgents:

有一组API无法在计划任务执行的代码中使用.这包括在实现ScheduledTaskAgent的类中包含的代码,作为从ScheduledTaskAgent调用的任何库中的代码.其中一些API由开发工具检测到,并会在运行或编译时引发错误.其他API受Windows Phone Marketplace应用程序提交过程的限制.

这是否意味着AudioPlayerAgents 可以使用该页面上列出的API?两者都继承Microsoft.Phone.BackgroundAgent,但在该页面上只明确提到了一个,我不确定是否AudioPlayerAgent认为是一个Scheduled Task.任何人都可以确认这种或那种方式吗?

windows-phone-7 windows-phone windows-phone-7.1

5
推荐指数
1
解决办法
526
查看次数

使用Jquery访问hiddenfield

我有一个从母版页派生的页面.在这个页面上,我有一个隐藏字段("hfUser").如何使用JQuery访问此"hfUser"控件并获取/设置其值?我试过这个变种:

$(document).ready(function() {
    var test = $("#hfUser").val();
    alert(test);

});
Run Code Online (Sandbox Code Playgroud)

但是测试=未定义.我猜我的选择器错了,但我不知道如何获得asp隐藏字段.有任何想法吗?

谢谢

asp.net jquery hiddenfield

4
推荐指数
1
解决办法
2万
查看次数

显示CreateUserWizard的错误消息标签

我有一个CreateUserWizard控件,正在执行服务器端验证.有没有办法强制从代码隐藏显示CUW的错误消息?此时,如果用户输入重复的名称,则会显示控件DuplicateUserNameErrorMessage属性.但是,如果用户关闭了javascript,或发送了带有无效字符的自定义POST标头,我依靠我的服务器端验证来捕获错误.然后,我如何在控件的ErrorMessage标签中显示相同的错误消息,而不是创建自定义标签并伪造它?

编辑:只是为了澄清,服务器端验证测试各个方面.重复用户只是控件调用ErrorMessage标签的示例.

谢谢

asp.net code-behind createuserwizard

4
推荐指数
1
解决办法
2192
查看次数

可见GUID是否存在安全风险?

我正在使用ASP.NET和我的网站的成员资格提供程序.如果用户能够轻松查看其GUID,那么这会被视为安全风险吗?我是否应该采取额外措施来阻止用户轻松找到他们的GUID,例如在他们确认验证过程时.虽然有很多方法可以解决这个问题,例如对"前端"活动使用单独的GUID,这是否会增加开销和开发时间?

可能的欺骗的一个例子是我在验证用户访问资源的权限时.

Guid cUser = (Guid)Membership.GetUser().ProviderUserKey; //if this is publicly viewed, then  there's no reason to call the DB or store in a session as it can be placed in the QueryString
bool grantAccess = CheckGroupPermission(cUser, groupID);
Run Code Online (Sandbox Code Playgroud)

谢谢

membership asp.net security guid query-string

3
推荐指数
2
解决办法
1082
查看次数

当dispose()方法可以写在类中时,为什么要使用IDisposable

标题很清楚地解释了这个问题.我想知道为什么我要实现在类中只提供一个方法定义的IDisposable接口,在另一个类中,我可以显式定义dispose()方法并释放所有非托管资源.

说我有这两个班

class MyClass : IDisposable
{
    public void Dispose() { }
}

class MyClass2
{
    public void Dispose() { }
}
Run Code Online (Sandbox Code Playgroud)

MyClass和MyClass2之间究竟有什么区别?

c# oop

3
推荐指数
1
解决办法
209
查看次数

如果在任何时候返回默认值,则停止 LINQ 查询

当以流畅的语法编写时,是否有语法糖或方法可以在同一行中“短路”LINQ 语句?例如,如果null由调用返回FirstOrDefault,是否可以返回 null,否则继续方法链的其余部分?

List<string> testList = new List<string>() { "some", "strings" };
var reversed = testList.FirstOrDefault(x => x == "hello").Reverse();
Run Code Online (Sandbox Code Playgroud)

该调用将返回 null,因此该语句将在调用时FirstOrDefault抛出一个异常。有没有办法在调用之前停止,因为此时返回了默认值?ArgumentNullExceptionReverseReverse

(我知道查询可以分成另一行,并且default(T)可以在之前进行检查Reverse,或者,对于简单的情况,可以使用条件运算符 ( ?:),但我很好奇我是否缺少更长/更复杂链的特定功能)

编辑 - 为了澄清这只是一个展示想法的示例,它不是任何实际代码的一部分。我想避免引发异常,因为只分割行并进行检查会提高性能。

c# linq syntactic-sugar default-value short-circuiting

3
推荐指数
1
解决办法
1463
查看次数