在几乎每个项目中,我都无法决定如何处理某些全局常量值.在过去的日子里,当我编写没有使用dll的C++程序时,很容易.只需创建和.h文件,其中包含一些const为我的项目描述某些常量值的文件.然后我把每个文件都包括在内,并且ta-da!有效.清洁,尊重DRY原则并且很简单.
现在我的项目是C#.Net,它为我提供了大量的选项来解决这个问题.据我所知:
创建一个程序集,其唯一目的是为项目保存常量值.然后,每个其他大会都应参考这一个.我尊重DRY和KISS,因为添加引用很简单.这里的主要问题是我需要重新编译整个源代码来更新这些值.
使用app.config文件并让所有其他程序集在初始化期间检索常量.所以我添加了为了访问全局值而必须初始化所有内容的开销.更灵活但也更痛苦.
使用资源.我认为它与app.config相同.
所以,我知道有一个更好的方法来做这个常量声明.但我不知道,到目前为止,一直无法找到如何做到这一点.你能帮忙吗?我有糖果!
谢谢大家
我正在尝试制作一个不错的Java程序,从1到N生成素数(主要用于Project Euler问题).
目前,我的算法如下:
初始化一个布尔数组(如果N足够大则初始化为bitarray),因此它们都是假的,并且存储了一组用于存储素数的整数.
设置一个整数,s等于最低素数,(即2)
s是<= sqrt(N)
在数组/位阵列中将s的所有倍数(从s ^ 2开始)设置为true.
找到array/bitarray中的下一个最小索引,该索引为false,将其用作s的新值.
ENDWHILE.
遍历数组/位阵列,对于每个假的值,将相应的索引放在primes数组中.
现在,我试过跳过不是6k + 1或6k + 5形式的数字,但这只能让我加速~2倍,而我看到程序运行的速度比我的速度快(虽然非常复杂)代码),例如这里的那个
我该怎么做才能改善?
编辑:好的,这是我的实际代码(对于1E7的N):
int l = 10000000, n = 2, sqrt = (int) Math.sqrt(l);
boolean[] nums = new boolean[l + 1];
int[] primes = new int[664579];
while(n <= sqrt){
for(int i = 2 * n; i <= l; nums[i] = true, i += n);
for(n++; nums[n]; n++);
}
for(int i = 2, k = 0; i < nums.length; i++) if(!nums[i]) primes[k++] …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个格式化程序,将显示的日期格式转换为NSDate对象:
NSString *dateStr = @"2010-06-21T19:00:00-05:00";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate *date = [dateFormat dateFromString:dateStr];
Run Code Online (Sandbox Code Playgroud)
问题是时区-05:00,使用上面的格式无法正确解析.有什么建议?
我正在试图找出更新列值的内容,而我对应用程序知之甚少.快速浏览一下,我注意到大约90%的应用程序业务逻辑都是在数据库上处理的.毋庸置疑,SP,功能和触发器的深度是疯狂的.
我想在有问题的表上创建一个触发器,它将记录影响该表的SQL.可以使用什么SQL在正在更新的表的上下文中获取已执行的SQL?
详细信息:MS SQL Server 2008
谢谢!!
我目前正在尝试通过http Get调用服务器进行身份验证.下面提供的代码在java项目中编译时有效.将正确的令牌返回给程序.但是,每当我尝试在Android中实现相同的代码时,我都不会通过Get调用返回令牌.
在Android中,我在函数中返回inputLine,但inputLine始终是空字符串.
system.out.println()打印返回的标记.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class JavaHttpsExample
{
public static void main(String[] args)
{ String inputLine = new String();
try
{
String httpsURL = "https://the url";
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
InputStream ins = con.getInputStream();
InputStreamReader isr=new InputStreamReader(ins);
BufferedReader in =new BufferedReader(isr);
inputLine = in.readLine();
System.out.println(inputLine);
in.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!!!
我想在使用asp fileupload组件上传文件之前检查所选的文件大小.我无法使用activex,因为解决方案必须适用于每个浏览器(firefox,Chrome等).
我怎样才能做到这一点 ?
谢谢你的回答..
如何调整嵌入标记的大小(比如如何调整img标记的大小)?
例:
<embed src="1.mp4" width="1280" height="1024" />
Run Code Online (Sandbox Code Playgroud)
这很好,因为原来是1280 x 1024.但如果我
<embed src="1.mp4" width="640" height="512" />
Run Code Online (Sandbox Code Playgroud)
然后它裁剪电影而不是调整它.
我正在尝试在我创建的一组自定义列表中创建文件夹.但是,当我尝试执行此操作时,功能区中的"新建文件夹"按钮被禁用.我读了这件事; 这导致我在列表设置 - >高级设置中启用文件夹创建.但是,似乎没有在页面上启用文件夹创建的选项.它不应该是与许可相关的问题; 因为我创建了列表; 我也是农场的管理员.
我可以使用文档库; 但我们不会将文件上传到列表中; 所以这就是我需要的.
我有什么选择,或者我做错了什么?
谢谢,弗兰克
我有一个字符串Unnecessary:12357927251data,我需要在冒号和数字后选择所有数据.我会用Regexp来做.
string.scan(/:\d+.+$/)
Run Code Online (Sandbox Code Playgroud)
这会给我:12357927251data,但我可以只选择所需的信息.+(data)吗?