小编Tim*_*mwi的帖子

在CLR 4.0中引入了哪些OpCodes?

与3.5相比,.NET 4.0中是否有新的IL操作码,如果有的话,我在哪里可以找到它们的列表?

.net clr il cil opcode

13
推荐指数
1
解决办法
751
查看次数

xml序列化将xmlelement和xmlattribute一起指定

鉴于: -

[XmlRoot("Book")]
public class Book
{
   [XmlAttribute]
   public string Title;

   [XmlElement]
   public string Publisher;

   [XmlElement]
   public string PublisherReference;
}
Run Code Online (Sandbox Code Playgroud)

当序列化为XML时会给出

<Book Title="My Book">
   <Publisher>Some Publisher</Publisher>
   <PublisherReference>XYZ123</PublisherReference>
</Book>
Run Code Online (Sandbox Code Playgroud)

我如何将PublisherReference作为Publisher的属性 - 例如

<Book Title="My Book">
   <Publisher Reference="XYZ123">Some Publisher</Publisher>
</Book>
Run Code Online (Sandbox Code Playgroud)

.net c# xml-serialization

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

"动态"类型的表达式在运行时的行为是否与同一运行类型时间的非动态表达式相同?

请考虑以下示例程序:

using System;
public delegate string MyDelegateType(int integer);

partial class Program
{
    static string MyMethod(int integer) { return integer.ToString(); }

    static void Main()
    {
        Func<int, string> func = MyMethod;

        // Scenario 1: works
        var newDelegate1 = new MyDelegateType(func);
        newDelegate1(47);

        // Scenario 2: doesn’t work
        dynamic dyn = func;
        var newDelegate2 = new MyDelegateType(dyn);
        newDelegate2(47);
    }
}
Run Code Online (Sandbox Code Playgroud)

第一个按预期工作 - 转换MyDelegateType成功.但是,第二个会抛出一条RuntimeBinderException错误消息:

无法将类型'System.Func <int,string>'隐式转换为'MyDelegateType'

C#规范中是否存在允许此行为的任何内容,或者这是Microsoft C#编译器中的错误?

c# dynamic

12
推荐指数
1
解决办法
268
查看次数

为什么Visual Studio在启用时会说"代码覆盖率未启用此测试运行"?

在Visual Studio中,我刚刚创建了一个简单的单元测试来测试我编写的方法.我想检查代码覆盖率,但代码覆盖率窗口只表示"未对此测试运行启用代码覆盖率".为什么?注意:

  1. 我已经按照本页面上的说明进行操作,即测试配置确实在代码覆盖率选项页面上检查了相关的程序集.
  2. 我点击了"运行测试",而不是 "调试测试",一些消息来源声称这导致了这一点.
  3. 我已经尝试将当前构建配置设置为"Debug"或"Release"来运行测试; 既不起作用.
  4. 我也按照这个页面上的建议(通过选择Test => Select Active Test Run Configuration重新选择testrunco​​nfig文件),但无济于事.

然而,每次运行相关测试时,我仍然会收到"此测试运行未启用代码覆盖率"的消息.如何一劳永逸地启用代码覆盖?

unit-testing code-coverage visual-studio

11
推荐指数
1
解决办法
5867
查看次数

GridView的'OrdersGridView'触发了未处理的事件RowDeleting

我一遍又一遍地得到这个错误.

将数据加载到GridView中可以正常工作,但是当我想删除一行时,我收到了该错误.

<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted">
    <Columns>
        <asp:TemplateField HeaderText="Product Name">
            <ItemTemplate>
                <asp:HiddenField runat="server" ID="HiddenField1" Value='<%#Eval("oid")%>'></asp:HiddenField>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="titel" HeaderText="Name" />
        <asp:BoundField DataField="oid" HeaderText="Itemno" />
        <asp:BoundField DataField="prijs" HeaderText="Price" />
        <asp:CommandField ButtonType="Link" CausesValidation="false" HeaderText="Update" ShowDeleteButton="True" />
        <asp:BoundField DataField="prijs" HeaderText="Subtotal" />
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

C#codebehind - 我并没有真正删除数据库中的行,但这是一个测试:

protected void OrdersGridView_RowDeleted(object sender, System.Web.UI.WebControls.GridViewDeletedEventArgs e)
{
    if (e.Exception != null)
    {
        lblStatus.Text = e.Exception.ToString();
    }
    else 
    {
        string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value;
        lblStatus.Text = sValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

但点击后,我得到一个bigass黄页,下一个错误:

GridView的'OrdersGridView'触发了未处理的事件RowDeleting.

c# gridview

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

如何对SQLite查询进行排序而忽略文章("the","a"等)?

我正在使用C#来显示我从SQLite数据库调用的电影标题列表.目前,我正在使用一个自定义ListBox类,它具有从每个项目的开头剥离单词"The"的文本排序功能.但是,它似乎并不是最简单的方法,因为它从SQLite数据库调用然后排序.我希望将其缩减到一步,希望在我的"SELECT"查询中直接从数据库中进行排序.

我已经对此进行了一些搜索,并找到了一些建议,包括在数据库中创建一个额外的排序列.虽然这肯定是可能的,但我想知道是否有任何更简单的选项不需要插入几乎相同的重复信息(特别是如果数据库变大).我是SQLite的新手,但我已经阅读了一些关于创建可用于创建自定义排序的collat​​e函数的内容.但是,我不确定这是否适合使用它似乎无法找到任何帮助在C#中实现它.

希望有人能够分享一些指导.如果额外的排序列是最好的方法,那么这就是我要做的.

c# sqlite stop-words

11
推荐指数
2
解决办法
1633
查看次数

有关C#语言规范中隐式转换的问题

6.1节隐式转换因此定义了身份转换:

身份转换从任何类型转换为相同类型.存在这种转换,使得已经具有所需类型的实体可以说可转换为该类型.

现在,这些句子的目的是什么?

(在§6.1.6隐式参考转换中)

隐式引用转换是:

  • [...]
  • 从任何引用类型引用类型, T如果它具有隐式标识或引用转换为引用类型 T0T0具有标识转换为T.

和:

(在§6.1.7拳击转换中)

  • 如果值类型具有I到接口类型I0的装箱转换并且I0具有到的标识转换,则值类型具有到接口类型的装箱转换I.

最初它们似乎是多余的(同义词).但他们必须出于某种目的,所以为什么他们在那里?

你能给两种类型的例子T1,T2,使得T1不会是隐式转换为T2,如果不是因为上面引述的段落?

c# language-features language-specifications implicit-conversion

11
推荐指数
2
解决办法
794
查看次数

用于编辑C#应用程序配置文件的通用用户界面

我正在用C#开发一些小工具,基本上它们只是作为一个控制台应用程序工作正常,从exe配置文件(System.Configuration)读取一些配置值.

但是编辑XML文件并不是一个很好的用户体验,所以我正在寻找一个工具/库,它可以在WPF或Winforms中创建一个简单的配置屏幕,供用户更改这些值.

对于许多简单的情况,这应该是可以自动化的.我没有找到任何可以解决这个问题的现有工具.有没有人知道为配置文件或任何可以加速创建此类工具的工具创建UI的工具?

在纯WPF中创建它应该不是问题,但欢迎使用任何加速该过程的工具.

c# configuration user-interface

11
推荐指数
1
解决办法
2784
查看次数

编码风格:表达式内的赋值?

想要从这个社区获得洞察力的快速问题:哪一个更可取?


选项 ?

// How many spaces are there in the beginning of string? (and remove them)
int spaces = text.Length;
text = text.TrimStart(' ');
spaces -= text.Length;
Run Code Online (Sandbox Code Playgroud)
  • 优点:在单独的一行上分配,因此副作用是明确的
  • 缺点:第一行本身看起来没有意义; 你必须注意第三行才能理解它

选项 ?

// How many spaces are there in the beginning of string? (and remove them)
int spaces = text.Length - (text = text.TrimStart(' ')).Length;
Run Code Online (Sandbox Code Playgroud)
  • 优点:声明在其执行的计算方面是有意义的
  • 缺点:分配有点隐藏在表达式中; 副作用可以忽略不计

c# coding-style

11
推荐指数
2
解决办法
1332
查看次数

如何确定哪些字体包含特定字符?

给定一个特定的Unicode字符,让我们说吗,如何迭代系统中安装的所有字体并列出包含该字符字形的字体?

.net c# fonts

11
推荐指数
1
解决办法
4507
查看次数