我正在构建一个从互联网上检索图像的应用程序.即使它工作正常,但在应用程序中使用try-catch语句时速度很慢(在错误的给定URL上).
(1)这是验证URL和处理错误输入的最佳方法 - 还是应该使用正则表达式(或其他方法)?
(2)如果我没有在textBox中指定http://,为什么应用程序尝试在本地查找图像?
private void btnGetImage_Click(object sender, EventArgs e)
{
String url = tbxImageURL.Text;
byte[] imageData = new byte[1];
using (WebClient client = new WebClient())
{
try
{
imageData = client.DownloadData(url);
using (MemoryStream ms = new MemoryStream(imageData))
{
try
{
Image image = Image.FromStream(ms);
pbxUrlImage.Image = image;
}
catch (ArgumentException)
{
MessageBox.Show("Specified image URL had no match",
"Image Not Found", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
catch (ArgumentException)
{
MessageBox.Show("Image URL can not be an empty string",
"Empty Field", …Run Code Online (Sandbox Code Playgroud) 所以我有一个我无法弄清楚的问题.我正在用C编写一些代码.我一直在处理从网络读取似乎随机工作的问题.
我最终将其追溯到代码中的字符串数量.我不敢相信,但我已经深入验证了它.
代码库相当庞大,所以我不确定字符串奇偶校验的总数.但是我知道,如果我添加一个奇数,那么程序可以工作,如果我添加一个偶数,它不会.
只是为了澄清当我说它不起作用时,它仍然构建并执行,但每次我尝试通过网络读取任何东西我得到的都是0.当它工作时,我得到正确的数据.
有没有人听说过这样的事情?或者知道可能导致这种情况的原因是什么?我可以看到程序的数据部分是否变得太大并且开始阻碍其他代码的空间,但事实上它的奇怪/偶数事情让我感到困惑.
谢谢
编辑(添加更多信息):
该平台是一个定制设计的设备.代码库是redboot,但是对于自定义设备已经显着改变了.
以剪切为例:
//这将起作用,因为它是奇数个字符串.
char* str1 = "test";
char* str2 = "test2";
char* str3 = "test3";
int i = strlen(str1) + strlen(str2) + strlen(str3);
Run Code Online (Sandbox Code Playgroud)
......................................
如果我要改变最后一行
int i = strlen(str1) + str(len2);
Run Code Online (Sandbox Code Playgroud)
这样str3就会被编译器优化掉,然后代码将不再起作用.我用各种长度的字符串测试了这么多次都导致了相同的奇/偶行为.(我只是发送到一个调试日志,以便它没有被优化出来.没有任何花哨的事情).
Edit2:上面的代码可以放在代码库中的任何地方,它会导致同样的问题.它是否被执行无关紧要,这让我相信它不是堆栈溢出.
我有一个文件 - 比如readme.txt我要复制或插入目录说
C:\ Documents and Settings\fooUsername\Application Data\BarSoftware
在使用Visual Studio的安装项目安装我的程序期间 - 我知道它与文件系统编辑器有关但不完全确定,因为我已经做了这种类型的事情已经有一段时间了.
我是嘲笑的新手,我很难解决UnitTesting的问题.
说我有这个代码:
public class myClass{
private IDoStuff _doer;
public myClass(IDoStuff doer){
_doer = doer;
}
public void Go(SomeClass object){
//do some crazy stuff to the object
_doer.DoStuff(object) //this method is void too
}
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我想UNIT测试Go方法.一旦得到它,我不关心_doer对象对对象的作用.
但是,我确实想检查_doer对象收到了什么.
在PSEUDO代码我想实现这个:
[Test]
public void MyTest()
{
IDoStuff doer = Mocker.Mock<IDoStuff>();
Guid id = Guid.NewGuid();
//test Go method
new MyClass(doer).Go(new SomeClass(){id = id});
Assert.AreEqual(id,MockingFramework.Method(DoStuff).GetReceived<SomeClass>().id);
}
Run Code Online (Sandbox Code Playgroud)
这是否可以使用Rhino,如果是这样,我该如何实现它?
干杯
我确信对此有一个简单的答案,但我找不到。
我知道如何在 JavaScript 中连接一个普通字符串,但我将如何在对象中进行连接?
当我阅读 XML 文件并为链接列表创建 HTML 时,我需要这样做。每次我通过循环时,我都想创建一个<li>包含链接的新内容。如何获取字符串的当前值,然后在末尾附加新链接?阅读完 XML 后,我会将 HTML 附加到页面。
我试过了:
carParks.links = carParks.links + "<li><a href=\"#\">car park</a></li>";
Run Code Online (Sandbox Code Playgroud)
没有成功。
任何帮助深表感谢。
任何想法为什么Eclipse有时会发抖并且无法识别它几秒钟之前的代码?下面的代码中的"R"在5分钟前没有下面的红色波浪线,我没有更改代码.这种情况经常发生在Eclipse上,通常我把它关闭然后重新启动它,这很好......不要再去了.
// Initialize view elements
mSearchBox = (EditText) this.findViewById(R.id.edittext_search);
mSearchButton = (Button) this.findViewById(R.id.button_search);
Run Code Online (Sandbox Code Playgroud) 我在Javascript中使用oop相对较新,我想知道私有方法的最佳实践是什么.现在,我正在使用mootools来创建我的类,我通过在前面添加下划线来强制私有方法,并强迫自己不要在类之外调用该方法.所以我的班级看起来像:
var Notifier = new Class(
{
...
showMessage: function(message) { // public method
...
},
_setElementClass: function(class) { // private method
...
}
});
Run Code Online (Sandbox Code Playgroud)
这是在JS中处理私有方法的好/标准方法吗?
自从阅读清洁代码以来,我一直在努力保持代码的描述性和易于理解.我有一个条件,必须填写A或B.但不是两者.而不是.目前if,检查这种情况的声明很难一目了然.您将如何编写以下内容,以便一目了然地查看正在检查的内容
if ((!string.IsNullOrEmpty(input.A) && !string.IsNullOrEmpty(input.B))
|| string.IsNullOrEmpty(input.A) && string.IsNullOrEmpty(input.B))
{
throw new ArgumentException("Exactly one A *OR* B is required.");
}
Run Code Online (Sandbox Code Playgroud) c# ×3
javascript ×2
string ×2
.net ×1
android ×1
c ×1
coding-style ×1
if-statement ×1
image ×1
mocking ×1
mootools ×1
oop ×1
regex ×1
rhino-mocks ×1
ruby ×1
try-catch ×1
unit-testing ×1
url ×1
xor ×1