小编sma*_*man的帖子

有谁知道系统或System.Core中的.NET枚举比较运算符?

System或System.Core中是否有包含所有ComparisonOperators的枚举?

我刚刚写了下面的枚举,但似乎已经存在一个常见的东西.

public enum ComparisonPredicate
{
    Equal,
    Unequal,
    LessThan,
    LessThanOrEqualTo,
    GreaterThan,
    GreaterThanOrEqualTo
}
Run Code Online (Sandbox Code Playgroud)

我在System.Web.UI中找到了一个,但是为http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationcompareoperator(v)引入一个依赖项会非常愚蠢.= VS.100)的.aspx

此外,我已经看过了ExpressionType,但我不想要那种广泛的范围

.net c# comparison system comparison-operators

20
推荐指数
2
解决办法
4464
查看次数

LINQ-to-SQL表<T> .Attach做什么?

究竟是什么在LINQ到SQL方法Table<T>.Attach()Table<T>.AttachAll()什么是他们正确使用的例子/局面?

另外,请查看以下相关问题:如何从DataContext的跟踪机制中分离LINQ-to-SQL数据对象?

c# linq datacontext linq-to-sql

17
推荐指数
1
解决办法
6947
查看次数

如何在ASP.NET MVC中定义表单字段前缀

我试图ProductCatalog在ASP.NET MVC中呈现复合视图.这要求我Product每页渲染多个视图.每个产品视图都是一个单独的表单.我需要表单字段具有基于id的前缀,以便我在呈现的文档中没有重复的ID.有没有办法定义要应用于Html扩展生成的所有表单字段的前缀,还是需要手动构建它?

asp.net-mvc html-helper prefix asp.net-mvc-3 asp.net-mvc-2

17
推荐指数
1
解决办法
3975
查看次数

如何将Func <T>隐式转换为Expression <Func <T >>?

我不明白这里发生了什么:

这两行都编译:

 Func<object> func = () => new object();

 Expression<Func<object>> expression = ()=>new object();
Run Code Online (Sandbox Code Playgroud)

但这不是:

 expression = func;
Run Code Online (Sandbox Code Playgroud)

没有隐式运算符LambdaExpressionExpression<TDelegate>将委托转换为表达式,因此必须发生其他事情才能使赋值工作.它是什么?

c# linq lambda expression linq-expressions

17
推荐指数
1
解决办法
1028
查看次数

使用AutoMapper将元数据传送到View模型的技术

我使用AutoMapper将我的域对象映射到我的视图模型.我的域层中有元数据,我希望将其转移到视图层和ModelMetadata中.(此元数据不是UI逻辑,但为我的视图提供了必要的信息).

现在,我的解决方案是使用单独的MetadataProvider(独立于ASP.NET MVC),并使用约定通过AssociatedMetadataProvider将相关元数据应用于ModelMetadata对象.这种方法的问题在于,当我使用AutoMapping绑定ModelMetadata时,我必须测试相同的约定,似乎应该有一种方法可以使这更加正交.任何人都可以推荐更好的方法来实现这一目标

automapper modelmetadata modelmetadataprovider asp.net-mvc-3 asp.net-mvc-2

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

在具有多个相应名称的枚举值上调用ToString()时,是什么决定选择哪个名称?

在调用具有多个相应名称ToString()enum值时,什么决定选择哪个名称?

问题的详细解释如下.

我已经确定这不是由以下任何一个唯一确定的:字母顺序; 申报单; 名字长度.

例如,考虑我想要一个枚举,其中数值直接对应于实际用途(例如颜色的rgb值).

public enum RgbColor 
{
    Black   = 0x000000,
    Red     = 0xff0000,
    Green   = 0x00ff00,
    Blue    = 0x0000ff,
    White   = 0xffffff
}
Run Code Online (Sandbox Code Playgroud)

现在,使用此枚举,调用default(RgbColor)将返回黑色的rgb值.假设我不希望默认值为黑色,因为我希望UI设计者能够在没有关于使用什么颜色的具体说明时使用"默认"调用.目前,要使用的UI设计器的默认值实际上是"蓝色",但这可能会改变.所以,我TextDefault在枚举上添加了一个额外的定义,现在它看起来像:

public enum RgbColorWithTextDefaultFirst
{
    TextDefault = 0x0000ff,
    Black   = 0x000000,
    Red     = 0xff0000,
    Green   = 0x00ff00,
    Blue    = 0x0000ff,
    White   = 0xffffff
}
Run Code Online (Sandbox Code Playgroud)

现在,我已经测试了这个,我发现调用RgbColorWithTextDefaultFirst.TextDefault.ToString()并且RgbColorWithTextDefaultFirst.Blue.ToString()都产生"蓝色".所以,我认为最后声明的名称将覆盖先前声明的名称.为了测试我的假设,我写道:

public enum RgbColorWithTextDefaultLast
{
    Black   = 0x000000,
    Red     = 0xff0000,
    Green   = 0x00ff00,
    Blue    = 0x0000ff,
    White …
Run Code Online (Sandbox Code Playgroud)

.net c# clr enums tostring

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

使用隐式枚举字段来表示数值是一种不好的做法吗?

使用隐式枚举字段来表示数值是一种必然的坏习惯吗?

这是一个用例:我想要一种简单的方法来表示十六进制数字,并且由于C#枚举基于整数,它们看起来像是自然匹配.我不喜欢a char或者string这里,因为我必须明确验证他们的价值观.枚举的问题是数字[0-9]不是有效的字段标识符(有充分的理由).在我看来,我不需要声明数字0-9,因为它们是隐含存在的.

所以,我的十六进制数字枚举看起来像:

public enum Hex : int { 
    A = 10,
    B = 11,
    C = 12,
    D = 13,
    E = 14,
    F = 15
}
Run Code Online (Sandbox Code Playgroud)

所以,我可以写Tuple<Hex,Hex> r = Tuple.Create(Hex.F,(Hex)1);,并r.Item1.ToString() + r.Item2.ToString()会给我"F1".基本上,我的问题是,如果ToString()数字常量的值是我想要命名的枚举字段,为什么完全省略声明是有问题的?

作为枚举的替代表示可以使用一些前缀声明字段,例如:

public enum Hex : int {
    _0 = 0,
    _1 = 1,
    _2 = 2,
    _3 = 3,
    _4 = 4,
    _5 = 5,
    _6 = 6,
    _7 = 7, …
Run Code Online (Sandbox Code Playgroud)

c# enums hex numbers naming-conventions

15
推荐指数
2
解决办法
858
查看次数

什么时候使用C#结构(值类型)牺牲性能?

我一直在使用结构作为隐式验证复杂值对象的机制,以及围绕更复杂类的通用结构以确保有效值.我对性能影响有点无知,所以我希望你们都能帮助我.例如,如果我要做一些事情,比如将域对象注入值类型包装器,会导致问题吗?为什么?我理解值类型和引用类型之间的区别,我的目标是利用值类型的不同行为.为了负责任地做到这一点,我到底需要考虑什么?

这是我正在思考的一个非常基本的想法.

public struct NeverNull<T>
    where T: class, new()
{

    private NeverNull(T reference)
    {
        _reference = reference;
    }

    private T _reference;

    public T Reference
    {
        get
        {
            if(_reference == null)
            {
                _reference = new T();
            }
            return _reference;
        }
        set
        {
            _reference = value;
        }
    }

    public static implicit operator NeverNull<T>(T reference)
    {
        return new NeverNull<T>(reference);
    }

    public static implicit operator T(NeverNull<T> value)
    {
        return value.Reference;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# performance struct value-type non-nullable

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

开源ASP.NET MVC CMS的评论/比较

我正在寻找ASP.NET MVC的开源CMS.我找到了MvcCms,N2和AtomicCMS.我正在寻找比较不同开源项目的任何建议,轶事,资源或文章,以便为我的项目找到最好的一个.我想找到有关不同项目的功能,可扩展性,相对可靠性和持续开发的信息.多谢你们.

c# asp.net asp.net-mvc review content-management-system

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

语言标记的正则表达式(由BCP47定义)

我需要BCP 47定义的语言标记的正则表达式.

我知道完整的BNF语法可以在http://www.rfc-editor.org/rfc/bcp/bcp47.txt上找到,我可以用它来编写我自己的语法,但希望有一个已经存在.

regex bnf

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