说,我正在使用连接到数据库命名con(或套接字或其他任何东西Closable).之后发生了什么close()?是con变得相等null还是还有东西?和之间有什么区别con.close()和con = null?
在我的应用程序中构造连接字符串时,我遇到了一些相当异常的异常.
string basis = "Data Source={0};Initial Catalog={1};Persist Security Info={2};User ID={3};Password={4}";
List<string> info1 = new List<string>(){ "SQLSRV", "TEST", "True", "user1", "pass1" };
string[] info2 = new string[] { "SQLSRV", "TEST", "True", "user1", "pass1" };
// throws exception
Console.WriteLine(String.Format(basis, info1));
// works fine
Console.WriteLine(String.Format(basis, info2));
Run Code Online (Sandbox Code Playgroud)
错误:
mscorlib.dll中发生了未处理的"System.FormatException"类型异常
附加信息:索引(从零开始)必须大于或等于零且小于参数列表的大小.
我的问题是:List的索引有什么问题?
我在foreach循环中有一个foreach循环,如下所示:
// Item is an abstract class. Item1, Item2, etc. are his heirs.
List<Item> allItems = new List<Item> { new Item1(), new Item2(), new Item3(), new Item4() };
List<Type> affectedItems = new List<Type> { typeof(Item1), typeof(Item3) };
foreach(Item i in allItems)
foreach(Type t in affectedItems)
if(i.GetType().Equals(t))
{
// does something
}
Run Code Online (Sandbox Code Playgroud)
如何改进我的代码,以便内循环不会浪费那么多时间检查列表中不存在的项目?
我有一个这样的字符串:
string a1 = "{`name`:`?????_?????????`,`shortName`:`?????`,`hideByDefault`:false}";
Run Code Online (Sandbox Code Playgroud)
a1. length显示字符串长度为68,这是不正确的:西里尔符号是两倍大(我认为是因为 UTF-16 编码),因此该字符串的实际长度是87。
我需要获取字符串中西里尔符号的数量或以任何其他方式获取真实的字符串长度。