是否有更好的方法要求方法中的参数不为null?我一直在检查我的方法所需的任何参数是否为null,如下所示。但是我想知道是否有更好的方法。
public void MyMethod(string a, int b)
{
if(a==null){throw new ArgumentNullException("a");}
if(b==null){throw new ArgumentNullException("b");}
//more stuff here
}
Run Code Online (Sandbox Code Playgroud) 我要求100页,所有404.我写了
{
var s = DateTime.Now;
for(int i=0; i < 100;i++)
DL.CheckExist("http://google.com/lol" + i.ToString() + ".jpg");
var e = DateTime.Now;
var d = e-s;
d=d;
Console.WriteLine(d);
}
static public bool CheckExist(string url)
{
HttpWebRequest wreq = null;
HttpWebResponse wresp = null;
bool ret = false;
try
{
wreq = (HttpWebRequest)WebRequest.Create(url);
wreq.KeepAlive = true;
wreq.Method = "HEAD";
wresp = (HttpWebResponse)wreq.GetResponse();
ret = true;
}
catch (System.Net.WebException)
{
}
finally
{
if (wresp != null)
wresp.Close();
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
两次运行显示需要00:00:30.7968750和00:00:26.8750000.然后我尝试了Firefox并使用以下代码
<html> …Run Code Online (Sandbox Code Playgroud) 我上课的相关部分看起来像
class C {
void Method<T>(SomeClass<T> obj) {
list.Add(obj);
}
List<?> list = new List<?>();
}
Run Code Online (Sandbox Code Playgroud)
我应该如何定义列表以便类编译?
我想要一个类型List<SomeClass<?>>列表,SomeClass即每个对象可以具有任何类型参数的对象列表.Java ?构造允许这样做; 什么是C#等价物?如果不存在这样的事情,是否有合适的解决方法?(A List<object>会做,但非常难看.)
是否可以隐藏字段和/或属性以显示在调试器监视窗口中?看,我们这里有一个有50多个私人领域的课程,其中大部分是通过公共场所公开的.这意味着我们在观察窗口列表中看到了大量数据的重复.
有没有办法控制这个?
#!/usr/local/bin/bash
out=`grep apache README`
echo $out;
Run Code Online (Sandbox Code Playgroud)
通常,grep会在命令行上运行时在单独的行上显示每个匹配项.但是,在上面的脚本中,分隔每个匹配的换行符消失了.有谁知道如何保留换行符?
我一直在寻找一种优雅而有效的方法,将一个字符串块化为Ruby中给定长度的子字符串.
到目前为止,我能想到的最好的是:
def chunk(string, size)
(0..(string.length-1)/size).map{|i|string[i*size,size]}
end
>> chunk("abcdef",3)
=> ["abc", "def"]
>> chunk("abcde",3)
=> ["abc", "de"]
>> chunk("abc",3)
=> ["abc"]
>> chunk("ab",3)
=> ["ab"]
>> chunk("",3)
=> []
Run Code Online (Sandbox Code Playgroud)
您可能想要chunk("", n)返回[""]而不是[].如果是这样,只需将其添加为方法的第一行:
return [""] if string.empty?
Run Code Online (Sandbox Code Playgroud)
你会推荐更好的解决方案吗?
编辑
感谢Jeremy Ruten提供的优雅高效的解决方案:
def chunk(string, size)
string.scan(/.{1,#{size}}/)
end
Run Code Online (Sandbox Code Playgroud) 在我写的一个特定脚本中,我有许多链接到某些DOM元素的对象.假设每个元素都有唯一的id,每个对象应该只保留元素的id(并且每次都使用document.getElementById),还是将元素存储在属性中?
这是我的意思的简化示例:
function myThing(elId) {
this.elId = elId;
}
myThing.prototype.getElValue = function() {
return document.getElementById(this.elId).nodeValue;
};
// -- vs -- //
function myThing(elId) {
this.el = document.getElementById(elId);
}
mything.prototype.getElValue = function() {
return this.el.nodeValue;
};
Run Code Online (Sandbox Code Playgroud)
它有什么不同吗?我应该知道有任何性能问题吗?
我有一些Python连接到一个数据库,其中有一个用于本地和实时的交换机.
LOCAL_CONNECTION = {"server": "127.0.0.1", "user": "root", "password": "", "database": "testing"}
LIVE_CONNECTION = {"server": "10.1.1.1", "user": "x", "password": "y", "database": "nottesting"}
if debug_mode:
connection_info = LOCAL_CONNECTION
else:
connnection_info = LIVE_CONNECTION
self.connection = MySQLdb.connect(host = connection_info["server"], user = connection_info["user"], passwd = connection_info["password"], db = connection_info["database"])
Run Code Online (Sandbox Code Playgroud)
在本地工作正常(Windows,Python 2.5)但实时(Linux,Python 2.4)我得到:
UnboundLocalError: local variable 'connection_info' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
即使我删除if/else并直接将连接信息分配给LIVE_CONNECTION值,我也会看到相同的错误.如果我将实时连接值硬编码到最后一行,则一切正常.显然我很困.我没看到什么?
我正在创建一个C#库,并且将使用他们使用的协议(TCP,UDP等)作为大多数公共类的前缀,并且我陷入了一个两难的境地:它应该是TCPXxxx或者TcpXxxx?
.NET框架中似乎没有标准(IPAddress相对于TcpClient).
使用库时您更喜欢哪个:TCPXxxx或者TcpXxxx?
自从我在大学学习数据结构和算法以来已经有一段时间了,所以最近有人建议递归可能不是进行树遍历的方式(tm).由于某些原因迭代,基于队列的遍历并不是我曾经使用过的技术.
如果有的话,迭代与递归遍历的优点是什么?在什么情况下我可以使用一个而不是另一个?