我使用了两个可以为空的int [] s:
int?[] OriginalPterodactylVals = new int?[NUMBER_OF_BABES_IN_TOYLAND];
int?[] ChangedPterodactylVals = new int?[NUMBER_OF_BABES_IN_TOYLAND];
Run Code Online (Sandbox Code Playgroud)
...和这个代码来同步它们:
ChangedPterodactylVals.CopyTo(OriginalPterodactylVals, 0);
Run Code Online (Sandbox Code Playgroud)
...但是现在我已经将int []更改为Lists并且还没有找到或想出如何完成同样的事情.
当一个"复制并粘贴"到另一个中时,它们在列表中都具有相同数量的值.
这段代码:
string SidFinch = "Unknown SidFinch";
String sql = @"SELECT SidFinch
FROM PlatypusDuckbillS
WHERE PlatypusSTARTDATE = :Duckbilldate AND
DuckbillID = :Duckbillid";
try {
using (OracleCommand ocmd = new OracleCommand(sql, oc)) {
ocmd.Parameters.Add("Duckbilldate", DuckbillDate);
ocmd.Parameters.Add("Duckbillid", DuckbillID);
SidFinch = ocmd.ExecuteScalar().ToString();
}
Run Code Online (Sandbox Code Playgroud)
...在"ExecuteScalar"行上失败.它没有找到任何东西(我传递的ID没有匹配的记录),但这不应该导致这个问题,是吗?
有没有一种方法 - 如果是的话,它是什么 - 找出特定陈述可能抛出的异常?
例如,给出以下代码:
String substr = SelectedFileName.Substring(DATE_BEGIN_POS, DATE_LENGTH);
return DateTime.Parse(substr);
Run Code Online (Sandbox Code Playgroud)
...我怎么知道第二行可能会抛出什么异常?你会认为可以突出显示该行,并从上下文菜单中选择一些来提供这个/这些......
ReSharper希望改变这个:
platypusID = DuckbillValues[i - 1].ToString();
Run Code Online (Sandbox Code Playgroud)
..到这个:
platypusID = DuckbillValues[i - 1].ToString(CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
由于我的应用程序仅在美国使用的机会很大,我将默认以下哪项:
1) Smart
2) Dumb
3) Neither smart nor dumb
4) Smart, but not for that reason
5) Dumb, but not for that reason
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个Utils单元,截至目前,只有一些枚举定义,例如:
public enum MostFavoredStates
{
California,
NorthCarolina,
Vermont,
NewMexico
}
public enum LeastFavoredStates
{
NorthDakota,
Illinois,
Nebraska
}
public enum StatesInWhichIHaveResided
{
California,
NewYork,
Montana,
Alaska,
Oklahoma,
Wisconsin,
Idaho,
Missouri
}
Run Code Online (Sandbox Code Playgroud)
当我在我的项目上运行ReSharper时,它说我在这个课程中根本不需要"使用"语句; 所以,我把它们全部删除了,瞧!它根本不需要任何东西.
"enum"必须在某处声明 - 如果没有对该程序集或命名空间的引用,它怎么能生存?如果每个班级都有"烘焙"的东西,它是什么?
如果我在Toad中运行此查询:
SELECT BANDID, BANDNAME
FROM WOODSTOCK
WHERE BANDNAME LIKE '%THE%'
Run Code Online (Sandbox Code Playgroud)
..它只是花花公子,并返回一堆行.但是,大概相当于代码:
const string sql = @"SELECT BANDID, BANDNAME
FROM WOODSTOCK
WHERE BANDNAME LIKE '%:BANDNAMEPORTION%'";
. . .
ocmd.Parameters.Add("BANDNAMEPORTION", BandNamePortion);
. . .
Run Code Online (Sandbox Code Playgroud)
...不返回任何记录.
我想从表单上选择的记录返回一个int和一个字符串到表单的调用者.
我可以用这两个成员创建一个类,然后传递一个实例.或者我可以使用只有一对值的字典(一个键,一个对应的值),这似乎是最简单的方法.
我想分配它是什么,我返回到Listview的DataBindings属性.
是否有任何理由不使用Dictionary <>?
我正在将一个文本框绑定到一个类的成员,我需要调整电话号码的外观,以便它更容易阅读(用户不希望看到诸如"1234567890"或"+01234567890"之类的值).所以,我有这个代码:
var bindingPhone = new Binding("Text", platypusInfo, "Phone1", true);
bindingPhone.Format += phoneBinding_Format;
textBoxPhoneNum1.DataBindings.Add(bindingPhone);
...
private void phoneBinding_Format(object sender, ConvertEventArgs e) {
e.Value = ??How can I deal with this??
}
Run Code Online (Sandbox Code Playgroud)
但是电话值虽然通常是"NNNNNNNNNN"(例如"1234567890")或"+ NNNNNNNNNNN"(例如"+01234567890")也可以出现在许多其他排列中,例如:
(NN) NNNN NNNN
++NNNNNNNNNNNNN
+NNNNNNNNNNNNN
+NN NNNNNNNNNNN
NNNNNNNNNNNN
Run Code Online (Sandbox Code Playgroud)
我可以在phoneBinding_Format()中做些什么来使这些电话号码更容易阅读而不会将它们分解成无意义的部分,例如"43-4859-4365"而不是"434-859-4365"?
由于这些因素:
1)我正在同时处理几个项目并需要回到另一个项目2)我们最常见的两种格式包括我们的电话号码中的大部分3)这只是一个"不错的功能"而不是"必备"特征
......根据Jon Skeet的回答,我现在已经解决了以下问题:
private void phoneBinding_Format(object sender, ConvertEventArgs e)
{
const int UK_PHONE_LEN = 9; // +NNNNNNNN
const int US_PHONE_FORMAT_LEN = 10; // NNNNNNNNNN
const int COMMON_INTERNATIONAL_FORMAT_LEN = 12; //+NNNNNNNNNNN
string phone;
string area;
string …Run Code Online (Sandbox Code Playgroud) 我在我的数据类中使用了以下模式的catch块:
} catch (OracleException e) {
log.Error(e, e);
ExceptionNotification.Show(e, "Platypus data not found for Platypus");
throw;
}
Run Code Online (Sandbox Code Playgroud)
("log"是log4net;之后是我们花哨的异常显示对话框).
当我删除"throw"时,我得到"并非所有代码路径都返回值"
如果我到达异常块,我想要返回的对象(一个OracleDataTable,一个List,一个Dictionary <>或一个自定义类,通常可能是null,或者最好不会感觉太好.我可以返回到mollify编译器?
我有两个托管TableLayoutPanels的标签页,我用标签和文本框动态填充.第一个获得96个标签和96个文本框,其闪烁是可接受/可容忍的,所以我没有费心添加SuspendLayout/ResumeLayout对.
然而,第二个获得96个标签和288个文本框,其绘画/闪烁是无法容忍的.IOW,192个控件似乎没问题,但384肯定不行.
我在动态创建控件之前调用SuspendLayout,然后在finally块中调用ResumeLayout,但删除了它们,瞧!像第一个tabPage/TLP一样,闪烁是可以接受的.
为什么减法加法有效呢?
c# ×10
winforms ×6
exception ×2
oracle ×2
sql ×2
.net ×1
arraylist ×1
cultureinfo ×1
data-binding ×1
dictionary ×1
dotconnect ×1
dynamic ×1
enums ×1
formatting ×1
intel ×1
nullable ×1
resharper ×1
sql-like ×1
tabs ×1