我有一个时间的字符串表示,如"11:13 AM".这是使用NSDateFormatter和stringFromDate:方法生成的.
我想将这个时间与当前时间进行比较,但是当我使用dateFromString:方法将字符串转换回日期时,会添加年,月和日 - 这是我不想要的.我只需要知道现在是否</>存储在字符串中的时间.
最好的办法是什么?在此先感谢您的帮助.
不要将可变类型的实例分配给只读字段.
使用可变类型创建的对象可以在创建后进行修改.例如,数组和大多数集合是可变类型,而Int32,Uri和String是不可变类型.对于包含可变引用类型的字段,只读修饰符可防止字段值被覆盖但不保护可变类型不被修改.
这简单地重述了readonly的行为,但没有解释为什么使用readonly是不好的.其含义似乎是许多人不理解"只读"的含义,并错误地认为只读字段是不可改变的.实际上,它建议使用"readonly"作为代码文档,指示深层不变性 - 尽管编译器无法强制执行此操作 - 并且禁止将其用于其正常功能:确保字段的值在之后不会发生变化对象已经构建.
我对使用"readonly"来表示除编译器理解的正常含义之外的其他内容感到不安.我觉得它鼓励人们误解"只读"的含义,并且期望它意味着代码作者可能不想要的东西.我觉得它排除了在可能有用的地方使用它 - 例如,表明两个可变对象之间的某些关系在其中一个对象的生命周期内保持不变.假设读者不理解"只读"的含义这一概念似乎与微软的其他建议相矛盾,例如FxCop的"不要初始化不必要"规则,该规则假定您的代码的读者是该语言的专家并且应该知道(例如)bool字段被自动初始化为false,并且阻止您提供显示"是,这已被有意识地设置为false的冗余;我不会忘记初始化它".
那么,首先,为什么Microsoft建议不要使用readonly来引用可变类型?我也有兴趣知道:
我有一个ASP .net MVC 2.0网站,我正在使用会员提供商来存储用户和组.
我如何获得所有角色的列表?
我有一个必须编译并在64位模式下运行的项目.不幸的是,我需要调用一个仅在32位模式下可用的DLL,因此我无法在一个Visual Studio项目中容纳所有内容.我正在寻找包裹在自己的EXE /服务的32位DLL和远程发布(虽然在同一台机器上)从我的64位应用程序调用该EXE /服务的最佳途径.我的操作系统是Win7 Pro 64位.
对此32位进程的所需调用是每秒几十次,但数据量较低.这是一个实时图像分析应用程序,因此尽管音量低,响应时间仍然很重要.大量发送/接收单个基元.
理想情况下,我会托管一个WCF服务来容纳这个DLL,但在64位操作系统中,不能强制服务作为x86运行!来源.这真是不幸,因为我在我的机器上调用WCF服务的函数只有4毫秒.
我已经尝试过命名管道.net.我发现它们比WCF慢40-50倍(对我来说无法使用).
任何其他选择或建议,以最好的方式来解决我的难题?
需要一些指导.
我有java webstart应用程序,我希望它通过SSL连接到服务器.只需添加一个属性,如:System.setProperty("javax.net.ssl.trustStore","my.keystore");但是因为JAWS程序是从服务器下载不起作用,本地文件系统上没有my.keystore.所以决定将证书分发给所有客户.我做了以下工作.
但我相信必须有比这更好的解决方案..任何想法让它变得更好?
public boolean validateUserFromActiveDirectory(String userId) {
final String MEMBER_GROUP = "CN=asdadasd,OU=asdasdasd Accounts,OU=adasdas,OU=asdasdas,DC=asdasdas,DC=asdasdas,DC=adasdasd,DC=asdasdasd";
String employeeNumber = "";
final String LDAP_INIT_CTX = "com.sun.jndi.ldap.LdapCtxFactory";
final String LDAP_URL = "ldap://xx-ssssssss.eee.eee.eeeee.eeeee:636";
final String MY_ATTRS[] = { "employeeNumber" };
String adminPassword = "somepassword";
String securityProtocol = "ssl";
boolean isValidUser = false;
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, LDAP_INIT_CTX);
env.put(Context.PROVIDER_URL, LDAP_URL);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.REFERRAL, "follow");
env.put(Context.SECURITY_PRINCIPAL, MEMBER_GROUP);
env.put(Context.SECURITY_CREDENTIALS, adminPassword);
env.put(Context.SECURITY_PROTOCOL, securityProtocol);
//C:\Documents and Settings\yourusername\Local Settings\Temp
File tf = File.createTempFile("someTruststore", …Run Code Online (Sandbox Code Playgroud) java中是否有一种方法可以创建具有指定数量的指定字符的字符串?在我的例子中,我需要创建一个包含10个空格的字符串.我目前的代码是:
StringBuffer outputBuffer = new StringBuffer(length);
for (int i = 0; i < length; i++){
outputBuffer.append(" ");
}
return outputBuffer.toString();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来完成同样的事情.特别是我想要一些快速的(在执行方面).
在C++中,阴影变量名称的范围分辨率("优先顺序")是多少?我似乎无法在网上找到简明的答案.
例如:
#include <iostream>
int shadowed = 1;
struct Foo
{
Foo() : shadowed(2) {}
void bar(int shadowed = 3)
{
std::cout << shadowed << std::endl;
// What does this output?
{
int shadowed = 4;
std::cout << shadowed << std::endl;
// What does this output?
}
}
int shadowed;
};
int main()
{
Foo().bar();
}
Run Code Online (Sandbox Code Playgroud)
我想不出变量可能会发生冲突的任何其他范围.如果我错过了,请告诉我.
shadow在bar成员函数内部时,所有四个变量的优先级顺序是多少?
我正在尝试编写一个从三个不同事件返回相同结果的查询,但我认为我做错了.我可以针对一个事件ID运行我的查询,它可以工作.我怎样才能选择这三个?这是我到目前为止所拥有的:
SELECT * FROM `Registrations`
WHERE `Role` = "Attendee" AND `RegistrationStatus_ID` = "1" AND `DigSignature` IS NULL
AND `Event_ID` = "147" OR `Event_ID` = "155" OR `Event_ID` = "160"
Run Code Online (Sandbox Code Playgroud) 使用模块定义文件(MyDLL.def)创建基本C++ DLL和导出的名称.编译后我检查导出的函数名称,dumpbin.exe
我希望看到:
SomeFunction
Run Code Online (Sandbox Code Playgroud)
但我看到了这一点:
SomeFunction = SomeFunction@@@23mangledstuff#@@@@
Run Code Online (Sandbox Code Playgroud)
为什么?
导出的函数显示为未修饰(特别是与不使用Module Def文件相比),但其他内容是什么?
如果我使用dumpbin.exe来自任何商业应用程序的DLL,你会得到干净的:
SomeFunction
Run Code Online (Sandbox Code Playgroud)
没有别的......
我还尝试删除模块定义并使用"C"导出方式导出名称,即:
extern "C" void __declspec(dllexport) SomeFunction();
Run Code Online (Sandbox Code Playgroud)
(简单地使用"extern"C"没有创建导出函数)
但是,这仍然会产生相同的输出,即:
SomeFunction = SomeFunction@@@23mangledstuff#@@@@
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个#define dllexport __declspec(dllexport)选项并创建了一个没有问题的LIB.但是,我不想在他们的C#应用程序中向使用DLL的人提供LIB文件.
它是一个普通的C++ DLL(非托管代码),用C++编译,只是一个简单的头和代码.没有Module Def我得到了错误的导出函数(我可以创建一个静态库并使用LIB没问题.我试图避免这种情况).如果我使用extern "C" __declspec(dllexport) OR模块定义我得到的似乎是一个未修饰的函数名...唯一的问题是它后跟一个"=",看起来像是函数的装饰版本.我想摆脱"="之后的东西 - 或者至少理解它为什么存在.
既然这样,我敢肯定,我可以使用P调用从C#中的函数/调用...我只是想避免垃圾在"="号结束.
我对如何更改项目/编译器设置的建议持开放态度,但我只使用了标准的Visual Studio DLL模板 - 没什么特别的.
我们有一个包含两个imagefield / filefield字段的内容类型,在将我们的站点迁移到新服务器后,我们遇到了以下问题:
当我们为此内容类型提交一个新项目时,这些字段有两个图像,drupal 会给我们以下错误并且不上传图像:
警告:fopen(sites/default/files/.htaccess) [function.fopen]:无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。警告: fopen(sites/default/files/.htaccess) [function.fopen]: 无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。图像无法创建缩略图。警告:fopen(sites/default/files/.htaccess) [function.fopen]:无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。警告: fopen(sites/default/files/.htaccess) [function.fopen]: 无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。
我知道这是一个权限错误,但我不清楚我必须在哪里更改权限。file.inc 的第 349 行代码如下:
if (($fp = fopen("$directory/.htaccess", 'w')) && fputs($fp, $htaccess_lines)) {
fclose($fp);
chmod($directory .'/.htaccess', 0664);
}
else {
$repl = array('%directory' => $directory, '!htaccess' => nl2br(check_plain($htaccess_lines)));
form_set_error($form_item, t("Security warning: Couldn't write .htaccess file. Please create a .htaccess file in your %directory directory which contains the following …Run Code Online (Sandbox Code Playgroud) c# ×2
c++ ×2
java ×2
.net ×1
asp.net-mvc ×1
dll ×1
drupal ×1
drupal-6 ×1
drupal-files ×1
export ×1
immutability ×1
iphone ×1
mysql ×1
objective-c ×1
scope ×1
shadowing ×1
sql ×1
ssl ×1
string ×1
stringbuffer ×1
truststore ×1
variables ×1