小编TK.*_*TK.的帖子

C#属性属性

我看过以下代码:

[DefaultValue(100)]
[Description("Some descriptive field here")]
public int MyProperty{...} 
Run Code Online (Sandbox Code Playgroud)

上面的snippit的功能似乎很清楚,我不知道如何使用它来做有用的事情.我甚至不确定给它的名字!

有谁知道我在哪里可以找到有关这些属性属性的更多信息/教程?我也对这个功能可以做的任何新颖/有用的任务感兴趣.

c# attributes properties

14
推荐指数
4
解决办法
4万
查看次数

管理GUI中的功能蠕变

有没有人有任何关于如何管理GUI中的功能蠕变的实用建议?

我正在从内部和外部来源获得强大的压力来添加,修改,调整等等.当有人接近我时,我总是畏缩,"如果......不会很好吗?".我不能只是转过身来对他们大喊"不",因为他们往往是我的上级或客户.

相反,我正在寻找建议,以帮助解释为什么不断添加新功能是一个坏主意,并在这样做,管理他们对最终产品的期望.

project-management

13
推荐指数
3
解决办法
1471
查看次数

C#检查文件目的地是否有效

是否有标准函数来检查指定的目录是否有效?

我问的原因是我收到了用户的绝对目录字符串和文件名,我想通过检查位置来检查它是否有效.

c# io sanity-check

10
推荐指数
2
解决办法
2万
查看次数

C#winforms启动(Splash)表单没有隐藏

我有一个winforms应用程序,我在其中使用2个表单来显示所有必要的控件.第一个表单是一个启动画面,它告诉用户它正在加载等等.所以我使用以下代码:

Application.Run( new SplashForm() );
Run Code Online (Sandbox Code Playgroud)

一旦应用程序完成加载,我希望SplashForm隐藏或我发送到后面和主要显示.我目前正在使用以下内容:

private void showMainForm()
{
    this.Hide();
    this.SendToBack();

    // Show the GUI
    mainForm.Show();
    mainForm.BringToFront();
}
Run Code Online (Sandbox Code Playgroud)

我所看到的是显示了MainForm,但SplashForm仍然可以在"顶部"显示.我目前正在做的是点击MainForm手动将它带到前面.有关为什么会发生这种情况的任何想法?

c# show-hide winforms

9
推荐指数
2
解决办法
3万
查看次数

C#从计时器添加和删除事件

我试图从计时器添加和删除事件,我有以下代码:

Timer myTimer = new Timer(); // Windows.Forms Timer

public void addEvent(MyDelegate ev)
{
    myTimer.Tick += new EventHandler(ev);
}

public void removeEvent(MyDelegate ev)
{
    myTimer.Tick -= new EventHandler(ev);
}
Run Code Online (Sandbox Code Playgroud)

我不知道如果我在尝试以这种方式添加和删除委托时做了任何愚蠢的事情,我能够添加代理并按预期启动它们.但是,当我尝试删除事件时,它们会继续触发Timers Tick.

任何人都能看到明显错误吗?

c# event-handling

9
推荐指数
1
解决办法
1万
查看次数

C#函数重载规则

有关函数重载的规则是什么?

我有以下代码:

public T genericFunc<T>() where T : Component, new()
{
    T result = new T();
    overloadedFunction( result );
}

private overloadedFunction ( Component c ) // catch all function

private overloadedFunction ( DerivedFromComponent dfc) // specific function
Run Code Online (Sandbox Code Playgroud)

当我用以下代码调用上面的代码时:

genericFunc<DerivedFromComponent>();
Run Code Online (Sandbox Code Playgroud)

我希望调用更具体的overloadedFunction,但是会调用catch all函数,为什么会这样?单步执行上面的代码时,类型T确实是DerivedFromComponent,我认为CLR在运行时选择了最佳匹配!

c# clr overloading

9
推荐指数
1
解决办法
2614
查看次数

实体框架6(代码优先)实体版本控制和审计

我正在考虑将Entity Framework 6.1.1与SQL Server 2008 R2一起使用.

目前我正在使用代码优先EF功能创建我的模型和数据库.我的基本用例是创建一个特定实体的所有更改的日志(ID是关键列),以帮助审计员跟踪所做的所有更改以及由谁做出的更改.例如:

|ID|Version|Created Date|Created By|Modified Date|Modified By|Modify Action| ... (rest of entity fields)
-------------------------------------------------------------------------------------------------------
| 4| 12    | 12-Mar-14  | tom      | 20-Feb-15   | jack      | Update      |
| 4| 11    | 12-Mar-14  | tom      | 14-Feb-15   | jill      | Update      |
| 4| 1     | 12-Mar-14  | tom      | 12-Mar-14   | tom       | Create      |
Run Code Online (Sandbox Code Playgroud)

Entity Framework是否支持这种类型的数据库方案?如果是这样,我如何设置我的模型/解决方案以促进这一点?

我的另一个选择是拦截对SaveChanges()方法的所有调用DbContext并将所有数据库更改记录到一个单独的Audit表中,但这可能使检索信息更具挑战性.

任何有关使用SQL Server和EF 6创建审计跟踪的帮助都将非常感激.

c# sql-server entity-framework entity-framework-6

9
推荐指数
1
解决办法
1万
查看次数

c#预处理器指令范围

我想用:

#define
Run Code Online (Sandbox Code Playgroud)

#if
Run Code Online (Sandbox Code Playgroud)

允许我在单元测试期间模拟可能缺少的硬件.使用这些#define陈述有哪些规则?

即它的默认范围是什么?我可以改变指令的范围吗?

c# scope c-preprocessor preprocessor-directive

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

c#枚举功能参数

作为这个问题的后续.

如何调用函数并传入枚举?

例如,我有以下代码:

enum e1
{
    //...
}

public void test()
{
    myFunc( e1 );
}

public void myFunc( Enum e )
{
    var names = Enum.GetNames(e.GetType());

    foreach (var name in names)
    {
        // do something!
    }

}
Run Code Online (Sandbox Code Playgroud)

虽然当我这样做时,我得到'e1'是'类型'但是使用像'变量'错误消息.有什么想法要帮忙吗?

我试图保持函数通用,以适用于任何Enum而不仅仅是一个特定的类型?这甚至可能吗?...使用通用功能怎么样?这会有用吗?

c# enums function-parameter

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

以编程方式关闭C#WPF应用程序的首选方法是什么?

哪个是关闭C#WPF应用程序的首选方法?

1)在主窗口中调用Window.Close()

2)在主窗口中调用Application.Current.Shutdown(0).

这两个在语义上是等价的还是我需要注意的微妙区别?

c# wpf close-application

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