小编naw*_*fal的帖子

获取winforms应用程序名称的正确方法是什么?

我能做到这一点:

return Assembly.GetEntryAssembly().GetName().Name;
Run Code Online (Sandbox Code Playgroud)

要么

return Path.GetFileNameWithoutExtension(Application.ExecutablePath);
Run Code Online (Sandbox Code Playgroud)

既能得到所需要的应用程序名称始终?如果是这样,这是获取应用程序名称的更标准方法?如果它仍然是一个不赢的局面,有什么比一种方法更快的速度吗?或者还有其他正确的方法吗?

谢谢.

c# .net-assembly application-name winforms executable-path

8
推荐指数
1
解决办法
7144
查看次数

获取MySQL安装路径

我需要获取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)

这就是我所做的.这有依赖性问题.

我怎么解决这个问题?

java mysql installation-path

8
推荐指数
2
解决办法
3230
查看次数

有没有办法在没有通用约束的情况下强制执行无参数构造函数

我有一个接口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 …

c# generics inheritance abstract-class interface

8
推荐指数
1
解决办法
7183
查看次数

Object.GetType()是否可以返回null?

只是好奇.

是否有任何时候调用.GetType()一个对象将返回null?

假设用法:

public Type MyMethod( object myObject )
{
    return myObject.GetType();
}
Run Code Online (Sandbox Code Playgroud)

c# types

7
推荐指数
2
解决办法
2092
查看次数

如何识别Type是否为自定义结构?

对于a Type,有一个属性IsClass,但如何知道a Type是一个结构?

对不起,我必须添加更多信息.

  1. 我正在使用C#.
  2. 虽然IsValueType是必要条件,但显然还不够.对于Integer,也是值类型.

.net reflection struct types

7
推荐指数
2
解决办法
1791
查看次数

按值排序字典

我有一个字典:

{ "honda" : 4, "toyota": 7, "ford" : 3, "chevy": 10 }
Run Code Online (Sandbox Code Playgroud)

我想通过第二列aka(值)降序对其进行排序.

期望的输出:

"雪佛兰",10

"丰田",7

"本田",4

"福特",3

vb.net sorting dictionary

7
推荐指数
1
解决办法
9751
查看次数

为什么不到处使用var?

除了非人类可读代码之外还有另一个原因是不对函数中的每个变量使用var吗?我的意思是性能命中不是使用int,SqlCommand,string而是使用var而不是?

var c#-4.0

7
推荐指数
4
解决办法
4765
查看次数

编译表达式树的性能

我有一个简单的场景,我试图在一个库存对象列表上测试表达式编译树的性能.下面是代码

表达式编译树的性能比静态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)

c# lambda expression

7
推荐指数
2
解决办法
4502
查看次数

如何在不克隆的情况下复制List <T>

也许我错过了一些微不足道的东西.我有几个,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)

和 …

.net c# clone copy generic-list

7
推荐指数
1
解决办法
589
查看次数

应用于通用枚举集合的Cast <int> .Cast <int?>会导致无效的强制转换异常

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# enums casting type-conversion

7
推荐指数
1
解决办法
178
查看次数