小编Cro*_*ono的帖子

我可以使用数组或其他可变数量的参数初始化C#属性吗?

是否可以创建一个可以用可变数量的参数初始化的属性?

例如:

[MyCustomAttribute(new int[3,4,5])]  // this doesn't work
public MyClass ...
Run Code Online (Sandbox Code Playgroud)

c# attributes

97
推荐指数
5
解决办法
7万
查看次数

如何知道用户点击了"X"或"关闭"按钮?

在MSDN中我发现CloseReason.UserClosing用户已经决定关闭表单,但我想单击X按钮或单击关闭按钮是相同的.那么如何在我的代码中区分这两者呢?

谢谢大家.

.net c# winforms

84
推荐指数
6
解决办法
28万
查看次数

.NET中是否存在与UI无关的Point结构?

我知道有几家Point在.NET结构:System.Drawing.Point,System.Windows.Point,Sys.UI.Point,但所有的人都在高层次的UI库(GDI +,WPF,AJAX).我需要Point在我的类库中进行计算的结构,我不想将其与任何特定的UI技术联系起来.Point.NET中是否有任何与UI无关的结构?或者我需要自己创建它?我知道,这很简单,但听起来像重新发明轮子.

.net c# vb.net struct

32
推荐指数
2
解决办法
2635
查看次数

动态按钮单击事件处理程序

我在表单中动态创建了100个按钮.我怎样才能为它们添加事件处理程序?

vb.net

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

如何使代码约定忽略特定的程序集引用?

我正在对Visual Studio进行扩展.在代码中,我使用代码约定来进行断言和检查.我将警告选项级别设置为高.

我想要做的是保持警告级别,同时忽略对EnvDTE引用进行的任何检查.

请考虑以下代码示例:

public static string GetAbsoluteOutputFolder(EnvDTE.Project project)
{
    if (project == null) throw new ArgumentNullException("project");

    var path =
        project.ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value.ToString();
    //...
}
Run Code Online (Sandbox Code Playgroud)

使用我当前的设置,CC会要求我在分配path变量之前添加以下检查:

Contract.Assume(project.ConfigurationManager != null);
Contract.Assume(project.ConfigurationManager.ActiveConfiguration != null);
Contract.Assume(project.ConfigurationManager.ActiveConfiguration.Properties != null);
Run Code Online (Sandbox Code Playgroud)

因此,我想在这里做的是告诉CC"信任"EnvDTE并忽略这些类型及其属性.

我认为"乐观外部API"CC选项就是为了这个目的而服务的.事实证明它没有.

有没有办法让它按照我想要的方式运行,不需要较低的警告级别

编辑:我想要一个在项目级别工作的解决方案,并且仍然允许执行"常规"检查.

.net c# code-contracts visual-studio

27
推荐指数
1
解决办法
1489
查看次数

执行后与程序交互

在PyCharm中,运行脚本后它会自动杀死它:

C:\ Users\Sean.virtualenvs\Stanley\Scripts\python.exe C:/Users/Sean/PycharmProjects/Stanley/Stanley.py

进程以退出代码0结束

如何在脚本启动后与脚本进行交互?由于没有更好的方式来表达它,我怎么能得到它

>>>

脚本运行一次后提示?

  • PyCharm社区版3.0
  • Windows 7的
  • Python 2.7

python windows ide pycharm

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

从解析字符串值的单行条件语句将null传递给DataTable

我有一个应用程序循环通过固定宽度的文本文件,将每一行读取到一个字符串变量并使用.Substring()方法查找给定字段的数据.对于给定的字段,它检查内容是否只是空格,或者其中是否存在实际的"数据",即除了空格之外的任何内容.例如,如果存在数据,并且该数据表示日期,则对该数据运行DateTime.Parse()并将其传递到C#DataTable中的datetime类型的字段; 但是,如果没有数据 - 只是空格,我想简单地将空值传递给该字段.以下是一段代码来说明:

var dataTable = new DataTable();

dataTable.Columns.Add("Application_Date").DataType = Type.GetType("System.DateTime");

while (!sr.EndOfStream)
{
    string row = sr.ReadLine();

    if (row.Substring(0, 1) == "2" && row.Substring(42, 1) == "T")
    {
        DataRow dr = dataTable.NewRow();

        dr["Application_Date"] = row.Substring(124, 8) != "        " ?
                                 DateTime.Parse(row.Substring(124, 4) +
                                 "-" + row.Substring(128, 2) + "-" +
                                 row.Substring(130, 2)) :
                                 null as DateTime?;                                                         

     }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试运行它时,它会抛出一个错误,说它想要一个DBNull(Cannot set Column 'Application_Date' to be null. Please use DBNull instead.)

但是当我尝试简单地传递一个DBNull时,它告诉我它无法在DateTime和DBNull(Type of conditional expression cannot be …

.net c# datetime nullable system.data.datatable

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

如何在T4模板中使用C#v6的最新功能?

我正在尝试在Visual Studio 2015中运行新的T4模板.但是它无法在此行编译:

var message = $"Linked table '{linkedTable}' does not exist.";
Run Code Online (Sandbox Code Playgroud)

编译器报告'$'字符是意外的.但是,根据新的字符串插值功能指南,此语法应在C#v6中有效.

有没有办法让T4模板引擎使用较新的C#版本,而不是在外部库中编译我的代码

更新:

以下是该文件的声明元素,作为参考:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".sql" #>
<#@ SqlModelDirective processor="SqlModelDirectiveProcessor" #>

<#@ import namespace="System" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="Microsoft.SqlServer.Dac" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="Microsoft.SqlServer.Dac.Model" #>
Run Code Online (Sandbox Code Playgroud)

除了SqlModelDirective元素,我认为这是非常标准的.

.net c# t4 visual-studio visual-studio-2015

17
推荐指数
2
解决办法
2191
查看次数

如何(完全)卸载Code Contracts Tool扩展?

我正试图摆脱我的系统上的Code Contracts Tools扩展.我已经从"程序和功能"中卸载它,但它仍然显示为Visual Studio中的已安装扩展.

任何帮助,将不胜感激.

.net code-contracts visual-studio

15
推荐指数
1
解决办法
2382
查看次数

WPF/Silverlight中的UIElement与FrameworkElement

我何时从衍生物中获取UIElementFrameworkElement考虑FrameworkElement继承UIElement.谁能举出现实生活中的例子?

silverlight wpf frameworkelement uielement

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