小编Dan*_*ens的帖子

.gitignore和Visual Studio项目:忽略bin/Debug目录,但不忽略bin/Release目录

我在git存储库中有一个C#Visual Studio项目.我想忽略内容bin/Debug目录,但不忽略bin/Release'目录的内容.我已经添加bin/Debug到我的.gitignore文件中,但它似乎没有用 - 它包含了bin目录的全部内容.这样做的正确条目是什么?

.net c# git gitignore visual-studio

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

StringComparison枚举的选项

我对StringComparison枚举的选项感到困惑.我只是想比较两个忽略大小写的字符串.有人可以解释当前文化,不变文化序数的含义吗?大多数用例是否有共同选项,如果有,在什么情况下需要其他选项?

作为参考,StringComparison枚举的选项如下:

  • 的CurrentCulture
  • CurrentCultureIgnoreCase
  • InvariantCulture的
  • InvariantCultureIgnoreCase
  • 序数词
  • OrdinalIgnoreCase

.net c# string .net-4.0 string-comparison

37
推荐指数
1
解决办法
9806
查看次数

通过CSS防止HTML表中的空行崩溃

我有一个HTML表格如下:

<table border="1">
    <tr>
        <td>Row with text</td>
    </tr>
    <tr>
        <td></td><!-- Empty row -->
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

当你运行它时,你会看到第二行是折叠的,但我更确切地说它是未折叠的,与第一行的高度相同.这样做的一种方法是放置一个&nbsp;实体,如下所示:

<table border="1">
    <tr>
        <td>Row with text</td>
    </tr>
    <tr>
        <td>&nbsp;</td><!-- Empty row -->
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

有没有办法通过CSS使用第一个片段中的HTML来实现第二个结果?

html css html-table

21
推荐指数
1
解决办法
5998
查看次数

在单独的枚举类型中重用枚举值

有没有办法在不同的类型中重用相同的枚举值?我希望能够得到以下内容:

enum DeviceState { UNKNOWN, ACTIVE, DISABLED, NOTPRESENT, UNPLUGGED };
enum DeviceType { UNKNOWN, PLAYBACK, RECORDING };

int _tmain(int argc, _TCHAR* argv[])
{
    DeviceState deviceState = DeviceState::UNKNOWN;
    DeviceType deviceType = DeviceType::UNKNOWN;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这对我有意义,但对C++编译器没有意义 - 它抱怨:error C2365: 'UNKNOWN' : redefinition; previous definition was 'enumerator'在上面的第2行.有没有正确的方法,或者我应该总是使用唯一的枚举值?我无法想象,如果我包含其他人的代码,我总是可以保证.

c++ enums visual-c++

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

在C#中安全地生成SQL查询

在C#中生成SQL查询最安全的方法是什么,包括清理用户输入以便注入安全?我希望使用一个不需要外部库的简单解决方案.

c# sql

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

IntelliSense for Data Binding无法正常工作

几个小时后,尝试调试由Binding扩展名中的错误属性引起的数据绑定问题.一旦我注意到这个错误,就会意识到如果IntelliSense可用,我可能一开始就没有犯过错误.作为Visual Studio用户,用于在输入错误名称时出错/警告; 也许我被宠坏了,但缺乏IntelliSense导致错误.

我做了一些研究,我发现可以使用Intellisense for Data Binding是我正在使用的Visual Studio 2013(终极版).我尝试按照博客中的第二个示例创建一个简单的WPF应用程序.首先,博客中的第二个示例中出现了导致编译器错误的错误.Type=ViewModel:MainViewModeld:固定编译器错误的情况下属性进行前缀,但我的View-Model类的属性仍未显示在Intellisense菜单中.我的代码在GitHub下面.

MainViewModel.cs:

using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace IntelliSenseForDataBinding
{
    public class MainViewModel : INotifyPropertyChanged
    {
        public MainViewModel()
        {
            Greeting = "Hello World";
            Answer = 42;
        }

        private string _Greeting;
        public string Greeting
        {
            get { return _Greeting; }
            set { _Greeting = value; OnPropertyChanged(); }
        }

        private int _Answer;
        public int Answer
        {
            get { return …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf intellisense visual-studio-2013

14
推荐指数
2
解决办法
6178
查看次数

如何序列化IList <T>等接口

可能重复:
如何序列化IList <T>?

我想序列化的类(我们称之为S)包含该类型的属性IList<T>那里T是我所定义的另一个类.当我尝试将类的实例序列化为SXML 时,我得到一个异常.这是可以理解的,因为XmlSerializer不知道使用哪个具体类.有没有办法(希望使用属性)指定在序列化/反序列化实例时要实例化的具体类.我的类实现S创建了一个类的实例List<T>.这是一些代码来说明我的例子:

using System;
using System.Xml.Serialization;
using System.IO;

[Serializable]
public class T { }

[Serializable]
public class S
{
    public IList<T> ListOfTs { get; set; }

    public S()
    {
        ListOfTs = new List<T>();
    }
}

public class Program
{
    public void Main()
    {
        S s = new S();
        s.ListOfTs.Add(new T());
        s.ListOfTs.Add(new T());
        XmlSerializer serializer = new XmlSerializer(typeof(S));
        serializer.Serialize(new StringWriter(), s);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望有一个属性,我可以放在 …

c# interface list xml-serialization

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

放置在TableLayout中的停靠控件的自动大小不会小于其创建大小

这个问题比解释的更好,所以我在Visual Studio 2010项目中设置了一个git repo,用于查看实际问题.

我有一个项目,我已经将一个ComboBox控件(comboField)添加到TableLayout控件(tableLayoutPanel1).我已经设置了DockComboBox 的属性,Fill以便它填充它所放置的TableLayout控件的单元格.我还设置Dock了TableLayout控件的属性,Fill以便它填充已放置的Form上.ComboBox的宽度目前为193像素.

当我运行窗体并增加其宽度时,ComboBox的大小会增加,如预期的那样.当我减小窗体的大小时,ComboBox的大小会缩小,直到达到原始大小(193像素).此时,ComboBox的宽度不会进一步减小,导致控件的右侧被剪裁.这与我的预期相反:ComboBox的宽度将减少到零,因为没有MinimumSize指定.也没有MinimumSize为表单上的任何其他控件指定,例如TableLayout控件.

如果它是相关的,TableLayout的第一列的宽度设置为Absolute100像素的大小,而TableLayout的第二列的宽度已设置为AutoSize.

任何人都可以解释为什么这种形式的表现与我的期望相反,并建议我如何以我想要的方式工作?任何帮助将非常感激.

.net c# tablelayoutpanel visual-studio-2010 winforms

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

我应该在#if(DEBUG)中调用Debugger.Log()吗?

是否有必要Debugger.Log()#if (DEBUG)预处理程序指令中包含调用以进行代码优化,或者在构建RELEASE配置时C#编译器是否仍会生成优化代码?

c# debugging logging compiler-optimization visual-studio

10
推荐指数
1
解决办法
412
查看次数

如何让<see langword =>标签使用C#关键字而不是VB关键字?

我正在使用XML和Sandcastle帮助文件生成器记录C#代码以生成HtmlHelp1帮助文件.我已经SyntaxFilters在Sandcastle项目上设置了属性,CSharp因为我只想生成与C#相关的代码语法.

我正在使用,<see langword="[langword]" />如下所示:

<see langword="null" />
<see langword="true" />
<see langword="false" />
Run Code Online (Sandbox Code Playgroud)

正如我将SyntaxFilters属性设置为CSharp我期望将上述标记转换为等效的C#关键字,如下所示:

null
true
false
Run Code Online (Sandbox Code Playgroud)

而是将它们转换为Visual Basic的等效关键字,如下所示:

Nothing
True
False
Run Code Online (Sandbox Code Playgroud)

有没有办法用适当的C#关键字而不是Visual Basic关键字替换这些标签,或者我根本不使用see标签?

sandcastle code-documentation

8
推荐指数
0
解决办法
1044
查看次数