我能做到这一点:
return Assembly.GetEntryAssembly().GetName().Name;
Run Code Online (Sandbox Code Playgroud)
要么
return Path.GetFileNameWithoutExtension(Application.ExecutablePath);
Run Code Online (Sandbox Code Playgroud)
既能得到所需要的应用程序名称始终?如果是这样,这是获取应用程序名称的更标准方法?如果它仍然是一个不赢的局面,有什么比一种方法更快的速度吗?或者还有其他正确的方法吗?
谢谢.
我需要获取MySQL的安装路径,以便通过java代码执行导出和导入数据库.目前正在使用eclipse.我需要在String变量"mySqlPath"中获取安装路径.
File fMysqlPath = new File("C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\");
String executeCmd = "mysqldump -u " + Constants.DB_USER + " -p" +
Constants.DB_PASSWORD + " " + Constants.DB_NAME + " -r " +
FilePath + "\\" + FileName;
Process runtimeProcess = Runtime.getRuntime().exec(executeCmd, null, fMysqlPath);
Run Code Online (Sandbox Code Playgroud)
这就是我所做的.这有依赖性问题.
我怎么解决这个问题?
我有一个接口ISnack,当由类实现时,它应该有一个默认的无参数构造函数.基本上这个:
public interface ISnack<T> where T : new()
{
}
Run Code Online (Sandbox Code Playgroud)
我<T> where T : new()只是用来强制执行无参数构造函数.
然后我会以这种方式实现接口:
public class Cutlet : ISnack<Cutlet>
{
}
Run Code Online (Sandbox Code Playgroud)
这有效,它只是确保Cutlet类具有无参数构造函数.
现在我有一个抽象的基类Kitchen:
public abstract class Kitchen<T> where T : ISnack
{
}
Run Code Online (Sandbox Code Playgroud)
要求是Kitchen应该有约束的地方T应该是ISnack.但这不会起作用,因为没有ISnack,但只有ISnack<T>.
如果我试过这个
public abstract class Kitchen<T> where T : ISnack<T>
{
}
Run Code Online (Sandbox Code Playgroud)
它不会编译('T' must be a non-abstract type with a public parameterless constructor in order …
只是好奇.
是否有任何时候调用.GetType()一个对象将返回null?
假设用法:
public Type MyMethod( object myObject )
{
return myObject.GetType();
}
Run Code Online (Sandbox Code Playgroud) 对于a Type,有一个属性IsClass,但如何知道a Type是一个结构?
对不起,我必须添加更多信息.
IsValueType是必要条件,但显然还不够.对于Integer,也是值类型.我有一个字典:
{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }
Run Code Online (Sandbox Code Playgroud)
我想通过第二列aka(值)降序对其进行排序.
期望的输出:
"雪佛兰",10
"丰田",7
"本田",4
"福特",3
除了非人类可读代码之外还有另一个原因是不对函数中的每个变量使用var吗?我的意思是性能命中不是使用int,SqlCommand,string而是使用var而不是?
我有一个简单的场景,我试图在一个库存对象列表上测试表达式编译树的性能.下面是代码
表达式编译树的性能比静态lambda调用慢5倍.我不确定这是否是表达式编译树可以预期的标准性能.非常感谢任何见解.
LambdaExpression();
List<Stock> stocks = new List<Stock>();
for (int ctr = 0; ctr <= 5000000; ctr++)
{
Stock stk1 = new Stock() { Price = ctr, Symbol = "A", CloseDate = DateTime.Now, FaceValue = ctr } ;
stocks.Add(stk1);
}
CompileTimeLamda(a);
DynamicLambda(a);
public static void LambdaExpression()
{
ParameterExpression CS1 = Expression.Parameter(typeof(Stock), "d");
var line1 = Expression.Equal(Expression.Property(CS1, typeof(Stock).GetProperty("Symbol")), Expression.Constant("MSFT", typeof(string)));
var line2 = Expression.GreaterThan(Expression.Property(Expression.Property(CS1, typeof(Stock).GetProperty("CloseDate")),typeof(DateTime).GetProperty("Millisecond")),
Expression.Constant(0, typeof(int)));
var line3 = Expression.GreaterThan(Expression.Property(CS1, typeof(Stock).GetProperty("Price")), Expression.Constant((double)0, typeof(double)));
var line4 = Expression.And(line1,line2);
var line5 = …Run Code Online (Sandbox Code Playgroud) 也许我错过了一些微不足道的东西.我有几个,List<T>我需要一个大的列表,这是所有其他列表的联合.但我确实希望他们在那个大名单中引用而不仅仅是值/副本(不像我通常在SO上找到的许多问题).
比如我有这个,
List<string> list1 = new List<string> { "a", "b", "c" };
List<string> list2 = new List<string> { "1", "2", "3" };
var unionList = GetThatList(list1, list2);
Run Code Online (Sandbox Code Playgroud)
假设我得到了我想要的列表unionList,那么这应该发生:
unionList.Remove("a"); => list1.Remove("a");
unionList.Remove("1"); => list2.Remove("1");
//in other words
//
//unionList.Count = 4;
//list1.Count = 2;
//list2.Count = 2;
Run Code Online (Sandbox Code Playgroud)
为了说清楚,这通常发生在
unionList = list1; //got the reference copy.
Run Code Online (Sandbox Code Playgroud)
但是如何list2添加第二个列表unionList?
我尝试了Add,AddRange但他们显然克隆而不是复制.
unionList = list1;
unionList.AddRange(list2); //-- error, clones, not copies here.
Run Code Online (Sandbox Code Playgroud)
和 …
enum Gender { Male, Female }
var k = new[] { Gender.Male }.Cast<int>().ToList().Cast<int?>().ToList(); //alright
var p = new[] { Gender.Male }.Cast<int>().Cast<int?>().ToList(); //InvalidCastException
Run Code Online (Sandbox Code Playgroud)
第二种情况的原因是什么?我知道我不能投了盒装enum,以int?直接,但我做了两个阶段铸造,即Cast<int>.Cast<int?>应工作.
编辑:
考虑到以下工作,这是令人惊讶的:
object o = Gender.Male;
int i = (int)o; // so here the cast is not to an entirely different type, which works
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×2
types ×2
c#-4.0 ×1
casting ×1
clone ×1
copy ×1
dictionary ×1
enums ×1
expression ×1
generic-list ×1
generics ×1
inheritance ×1
interface ×1
java ×1
lambda ×1
mysql ×1
reflection ×1
sorting ×1
struct ×1
var ×1
vb.net ×1
winforms ×1