我有一个应用程序从App.config启动时读取其设置.应用程序可能使用不同的预先存储提供程序.目前我有两个实现:Oracle和Dummy(用于测试目的).
现在在我的Program.cs中,我读了要使用的存储类型的名称.它可能是OracleStorage或DemoStorage.这些是类型名称,其实现位于单独的dll项目中.
现在,如果我有一个类型名称,如何实例化一个对象?
所以我可以写:
IStorageProvider storage = new typof(myStorageClassNameReadFromAppConfig);
Run Code Online (Sandbox Code Playgroud) 我有一个关于运行特定类型的查询的问题.这是一个例子:我有2个表X和Y.
Table X
1@abc.com
2@abc.com
3@abc.com
Run Code Online (Sandbox Code Playgroud)
我现在想将所有内容移到表Y中.所以现在,表Y看起来就像表X一样
我现在删除表X中的所有内容,除了1 @ abc.com所以新的表X看起来像这样:
Table X
1@abc.com
Run Code Online (Sandbox Code Playgroud)
假设我不小心做了这件事,我现在想要将表Y中的所有内容移回X,除了匹配记录(在这种情况下,将是1@abc.com)
我该怎么做?
我使用以下代码:
string x = str1 ?? str2 ?? str3 ?? "No string";
Run Code Online (Sandbox Code Playgroud)
但是,如果这些字符串(str1,str2,str3)中的任何一个是String.Empty,那么!= null?
我该如何处理这种情况?
我正在尝试使用bash改善构建自动化。我的shell脚本还有很多不足之处,但从本质上讲,我希望能够使用bash shell脚本来运行MSBuild.exe某些构建开关中的传递。所以myscript.sh有一行:
C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe /maxcpucount:8 /verbosity:q /p:Configuration=Debug C:/Myfolder/Main.sln
Run Code Online (Sandbox Code Playgroud)
由于导致失败/p:Configuration=Debug。我可以肯定地说,没有工作就可以执行MSBuild.exe。
有人可以帮忙吗?
我开发了一个简单的.net应用程序,该应用程序从Web上抓取一些数据并将其保存在一个文件中(该文件和proejct exe文件位于同一文件夹中)。
它在Windows上运行正常,但是当我在Mac上使用“单声道”运行它时,出现此错误
拒绝访问路径“ [path]”。
我正在使用Directory.GetCurrentDirectory创建对该文件的访问。
这是我正在使用的路径:
System.IO.Directory.GetCurrentDirectory() + "\\abc.csv";
Run Code Online (Sandbox Code Playgroud) 现在我有一个子来验证一堆文本框和组合框.
我之前使用过很多IF语句来验证和弹出不同的消息框和每个IF语句中的Exit Sub.
但我听说太多的退出会降低效率,不建议使用它们.相反,嵌套的IF更好,因为它会让进程自然地结束.
然后我发现如果我使用嵌套的IF,它将难以阅读,因为消息框都与条件分开.
我没有软件开发经验.所以我的问题是:在真实的项目中,你会选择哪种风格?
我有一个关于如何格式化字符串的简单问题.
我将这个数字作为字符串"01234567890",左边为零,需要将其格式化为" 012.345.678-90 ".
我用它解决了它
char[] charArgs = sCPF.ToCharArray();
return String.Format("{0}{1}{2}.{3}{4}{5}.{6}{7}{8}-{9}{10}",
charArgs[0], charArgs[1], charArgs[2], charArgs[3],
charArgs[4], charArgs[5], charArgs[6], charArgs[7],
charArgs[8], charArgs[9], charArgs[10]);
Run Code Online (Sandbox Code Playgroud)
我也试过了:
Convert.ToInt64("01234567890").ToString("000.000.000-00")
Run Code Online (Sandbox Code Playgroud)
但那给了我"1234567890,000000-00"
但如果我也试过这个
Convert.ToInt64("01234567890").ToString("000-000-000-00")
Run Code Online (Sandbox Code Playgroud)
这导致"012-345-678-90",但在这种情况下不是我需要的,我需要点(.).
有没有更好的方法呢?
我正在使用.net 2.0.
考虑一下
var source = new{ Id = "1", Name = "Name1"}
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,如果我想再添加一个属性怎么做...
它失败了
var source = new{ Id = "1", Name = "Name1"},new{ Id = "1", Name = "Name1"}
Run Code Online (Sandbox Code Playgroud)
这个的正确语法是什么?
我现在正在使用这样的部分字符串:
something.Substring(0, something.Length >= 8 ? 8 : something.Length)
Run Code Online (Sandbox Code Playgroud)
这种额外混乱的唯一原因是因为有时长度小于我在方法参数中放置的长度,这会导致错误.
是否有更简单的方法来安全地裁剪文本?
假设我有一个整数序列,从0(总是从0开始)到3.现在,我有一个整数数组,它将从一个点开始依次保持那些序列循环.例如:
10个元素的数组,序列为0到3,从2开始,应该产生2,3,0,1,2,3,0,1,2,3.
5个元素的数组,序列0到5,从5开始,应该产生5,0,1,2,3.
5个元素的数组,序列0到10,从3开始,应该产生3,4,5,6,7.
我正在脑部冻结!如果您知道数组大小,序列中的最大数量和起始值,那么创建此数组的最佳方法是什么?
我最好的尝试是:
private static int[] CreateIndexers(int index, int size, int players)
{
var indexers = new int[size];
for (int i = 0; i < size; i++)
{
var division = i / players;
var newInt = division + i >= players ? ((division + i) - players) : division + i;
indexers[i] = newInt;
}
return indexers;
}
Run Code Online (Sandbox Code Playgroud)