小编Nir*_*hah的帖子

Nullsafe在c#中导航

可能重复:
C#中的安全导航操作员?
"如果object为null,则为null;如果object为null,则为object.member"的快捷方式

在我的XML处理项目中,我必须浏览链式属性以获得所需的值.例如,obj1.obj2.obj3.obj4.obj....Value.并且可能退出此链中的任何对象为null.

我用Google搜索了"c#中的NullSafe导航"并找到了一些不错的文章.从Post之一,我有了实现自定义扩展的想法.现在我对这个扩展的性能有疑问.我有这3个解决方案.任何人都可以建议我采用哪一种(在性能方面)?

  • 选项1(使用本文中解释的逻辑):

    //custom extension method
    public static TOutput IfNotNull<TInput, TOutput>(this TInput x, Func<TInput, TOutput> f)
        where TInput : class
        where TOutput : class
    {
        return x == null ? null : f(x);
    }
    
    //with custom extension method -- Very neat & clean.. but what about performance? 
    string x = obj1
                .IfNotNull(x => x.obj2)
                .IfNotNull(x => x.obj3)
                .IfNotNull(x => x.obj4)
                .IfNotNull(x => x.obj5)
                .IfNotNull(x => x.Value);
    
    Run Code Online (Sandbox Code Playgroud)
  • 选项2:

    //with NullCheck  -- probably …
    Run Code Online (Sandbox Code Playgroud)

.net c# linq null

7
推荐指数
1
解决办法
864
查看次数

像在XSD中一样使用精确命名空间生成DataContracts

我们必须将我们的项目与后端Oracle平台集成.这种集成是通过各种Web服务实现的.我有所有这些集成的WSDL和XSD.我需要从这些WSDL和XSD生成DataContracts.
现在的问题是,大多数这些集成共享一些常见的数据类型.我想重复使用它们.
例如,

Integration1: oracle/common/commonDataTypes.xsd
              oracle/integration1/someXSD.xsd
              oracle/ebo/baseTypes.xsd
Integration2: oracle/common/commonDataTypes.xsd
              oracle/integration2/someXSD.xsd
              oracle/ebo/baseTypes.xsd
Integration3: oracle/commonDataTypes.xsd
              oracle/integration2/someXSD.xsd
              oracle/ebo/baseTypes.xsd

在这种情况下,我想在integration1和2之间重用oracle.common.CommonDataTypes.
到目前为止,我已经尝试了WSCF.blue和WSCF.但是这些工具在单个文件夹(和单个命名空间)中生成所有代码而不遵循命名空间.
我想下生成像甲骨文,oracle.commonData,oracle.integration1命名空间类,oracle.ebo等,所以是生成Datacontracts任何方式如下确切的命名空间的符号为XSD文件有哪些?

c# xsd wsdl wscf

5
推荐指数
1
解决办法
1172
查看次数

在一个表中插入多行或者将行分别插入到多个表中?

我有两个DataBase表(SQL CE).甲教师表和甲表.这两个表具有一对多关系,其中一个教师具有许多类(即,具有外键teacher_id).在运行时通过C#代码插入(或生成)教师(行)的数量,以及类

在INSERT和SELECT中,以下哪一项更快?

  1. 每次新教师被插入时,都会创建一个新的班级表(例如Class_teacher001)来存储教师所具有的任何班级.在这种情况下,每个类表都不必太大,不需要外键,因为表名会标识自己.但是会有一个Teacher表和许多Class_xxx表

  2. 只有一个Teacher表和一个Class表.每个类行都有一个指向Teacher表的外键.只有一个Class表,但它会变得很长.我担心搜索和阅读会很慢

c# database sql-server-ce

0
推荐指数
1
解决办法
298
查看次数

标签 统计

c# ×3

.net ×1

database ×1

linq ×1

null ×1

sql-server-ce ×1

wscf ×1

wsdl ×1

xsd ×1