我们总是需要尝试捕获我们的代码,它变得丑陋像
public void foo()
{
try
{
DoSomething();
}
catch(Exception e)
{
//do whatever with e
}
}
public int FooReturnInt()
{
try
{
return IntAfterSomeCalculation();
}
catch(Exception e)
{
//do exactly whatever with e as foo()
}
}
Run Code Online (Sandbox Code Playgroud)
想象一下,我们有一个庞大的类,有许多像这样的公共函数,我们必须在每个函数中应用相同的try catch.
理想情况下,因为try catch部分是相同的,我们可以将Func <>作为参数传递给辅助函数,它执行类似的操作
public void TryCatch(Func<something> theFunction)
{
try
{
theFunction();
}
catch(Exception e)
{
//processthe common exception
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想象这会整理我的代码很多,现在的问题是如何正确编写这个函数?此函数的返回类型取决于函数的返回类型.
我正在处理布局XML文件,我想为LinearLayout设置背景颜色.我现在使用的这个位完美无缺:
android:background="#1a64b7"
Run Code Online (Sandbox Code Playgroud)
但是,我更愿意打破这一点.在我的strings.xml文件中,我有
<string name="bg_blue">#1a64b7</string>
Run Code Online (Sandbox Code Playgroud)
但是当我以下列方式使用它时:
android:background="@string/bg_blue"
Run Code Online (Sandbox Code Playgroud)
它在Eclipse的图形布局预览中显示出很棒,但应用程序一打开就会崩溃.有任何想法吗?万分感谢.
缺口
编辑
好的,菜鸟在这里请耐心等待.我想问的是以下内容:
我认为更清楚地表明我正在寻找什么.任何在行业中使用这些技术的人的意见都会非常有帮助.
提前感谢您的见解.
我写了一个突出数字并复制它们的程序.我希望能够使用复制的文本进行一些基本的数学运算,例如乘法或加法,但我无法弄清楚如何将剪贴板数据分配给变量.基本上,我希望能够复制一个数字,将其分配给变量"a",然后用变量"b"重复并将两者相乘.我已经找到了如何选择和复制数字,以便该部分不是问题.任何帮助都会受到赞赏,即使是与我尝试过的完全不同的方法.
以下是我对此问题的最新尝试:
HANDLE clip0;
OpenClipboard(NULL);
EmptyClipboard();
clip0 = GetClipboardData(CF_TEXT);
variable = (char)clip0;
CloseClipboard();
Run Code Online (Sandbox Code Playgroud)
其中"变量"是变量.
每当我运行程序并告诉它输出"variable"时,它返回值0.
我做的另一个尝试是:
HANDLE clip1;
if (OpenClipboard(NULL))
clip1 = GetClipboardData(CF_TEXT);
variable = (char)clip1;
CloseClipboard();
Run Code Online (Sandbox Code Playgroud)
但"变量"总是采用-8的值
我需要在PHP脚本中比较(实际排名/排序)日期.日期是ISO-8601日期格式即
YYYY-MM-DD
我写了一个比较函数,它分割日期并按年/月/日进行比较.但是,这似乎有点矫枉过正,我可以轻松地做一个简单的字符串比较,如:
if ($date1 < $date2)
// do something
elseif( $date1 > $date2)
//do something else
else
//do yet another thing
Run Code Online (Sandbox Code Playgroud)
我的假设是关于(ISO-8601)日期字符串比较是否正确 - 即我可以摆脱我的功能(在服务器上保存几个时钟周期),还是明确更安全地在自定义函数中进行比较?
这似乎应该是相当简单的东西,但我似乎无法让它工作.
我想以编程方式清除ListView中当前所选项目的选择.
我已经尝试将SelectedValue设置为null,将SelectedItem设置为null,将SelectedIndex设置为-1,甚至尝试调用UnselectAll方法.在每种情况下,SelectedItems.Count仍等于一......
有任何想法吗?
我想知道是否有可能为 IQueryable 编写一个“直通”扩展方法,它会在评估可查询时编写调试字符串,换句话说,调试打印应该是评估的副作用。
就像是:
var qr = SomeSource.Where(...).OrderBy(...).Trace("SomeSource evaluated at {0}", DateTime.Now)
var qr2 = qr.Where(...);
Run Code Online (Sandbox Code Playgroud)
当我构造一个 linq 查询并将其作为数据源传递给某个对象时,我想知道该对象何时以及多久评估一次我的查询。我想它可以通过其他方式实现,例如包装 IEnumerable.GetEnumerator,但我想对任何 linq 查询通用。
基本上我需要在视图中有几个按钮.我希望他们都能调用一个函数,这样我就可以跟踪'状态'.
如何判断哪个按钮称为该功能?无论如何得到发件人的文字?
是否有可能在报告提交之前查看谁编辑了特定行git blame,例如给定行的提交历史记录?
例如,我运行以下(在极好的uncrustify项目上):
$ git blame -L10,+1 src/options.cpp
^fe25b6d (Ben Gardner 2009-10-17 13:13:55 -0500 10) #include "prototypes.h"
Run Code Online (Sandbox Code Playgroud)
如何在提交之前找出谁编辑了该行fe25b6d?又是谁之前编辑它是承诺?
正如我在标题中提到的,
a + = b和a = + b之间有什么区别,还有++和++ a?我有点困惑
.net ×2
c# ×2
android ×1
assign ×1
background ×1
blame ×1
c++ ×1
clipboard ×1
colors ×1
commit ×1
git ×1
ibaction ×1
iboutlet ×1
iphone ×1
ironpython ×1
java ×1
jython ×1
layout ×1
linq ×1
listview ×1
objective-c ×1
php ×1
pyjamas ×1
python ×1
try-catch ×1
uibutton ×1
variables ×1
winapi ×1
wpf ×1
xml ×1