小编And*_*ite的帖子

Objective C对象的两阶段构造

我一直在读RAII和单相与两相构造/初始化.无论出于何种原因,我直到最近一直处于两阶段阵营,因为在某些时候我一定听说过在构造函数中执行容易出错的操作是不好的.但是,我认为我现在确信单相是可取的,基于我在SO和其他文章中读过的问题.

我的问题是:为什么Objective C几乎专门为非便利构造函数使用两阶段方法(alloc/init)?这种语言有什么特定的原因,还是只是设计师的设计决定?

constructor initialization objective-c

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

在C#中是否有等效的Groovy?

在C#.net世界中,与groovy/java组合最接近的是什么?

如果我正在编写一个包含静态和动态部分的应用程序,那么.NET运行时的动态部分是什么样的groovy?

.net c# groovy dynamic

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

SQL:如何强制只在一组列中设置单个列

在SQL中,是否有一种方法可以强制只有一组列中的一列具有值,而其他列为空?可能是约束还是触发?这种类型的东西可能用于查找表,但有没有任何替代表设计可以更好地实现这一点?

例如:

ID    OtherTable1ID    OtherTable2ID    OtherTable3ID
-----------------------------------------------------
1     23               NULL             NULL
2     NULL             45               NULL
3     33               55               NULL   -- NOT ALLOWED
Run Code Online (Sandbox Code Playgroud)

主要问题是这些列都是其他表的FK,因此我无法将它们折叠为单个列.

我正在使用SQL Server,但任何答案都可以.

sql constraints

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

NHIbernate OR Criteria Query

我有以下映射类

Trade { ID, AccountFrom, AccountTo }
Account {ID, Company}
Company {ID}
Run Code Online (Sandbox Code Playgroud)

现在我无法弄清楚选择所有交易的方式

AccountFrom.Company.ID = X OR AccountTo.Company.ID = X
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法让AND工作:

criteria.CreateCriteria("AccountFrom").CreateCriteria("Company").Add(Restrictions.Eq("ID", X);
criteria.CreateCriteria("AccountTo").CreateCriteria("Company").Add(Restrictions.Eq("ID", X);
Run Code Online (Sandbox Code Playgroud)

但是我怎么能把它变成OR而不是AND.我之前使用过Disjunction,但我似乎不知道如何添加单独的标准,只是限制.

c# nhibernate criteria

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

WCF合同更改会影响客户端

我很好奇是否有人可以概述服务器端哪些类型的WCF合同(接口)更改会破坏尝试发送消息的客户端,以及原因.我相信WCF可以处理某些差异,但我不确定你可以安全地改变什么,以及你不能做什么.

  • 从OperationContract添加/删除参数?
  • 添加/删除/更改DataContract的序列化属性?
  • 从ServiceContract添加/删除OperationContracts?

一位朋友在这里问了一个类似的问题

向WCF ServiceContract添加方法是否会破坏现有客户端?

编辑:正如John Saunders所指出的那样,改变合同通常不是一个好主意,但是内置的东西允许一些版本容忍(ExtensionDataObject等?).我想知道版本容差的灵活性.

wcf datacontract servicecontract operationcontract

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

SMPP(二进制SMS)协议死了吗?

有没有人处理过SMPP二进制SMS协议?我知道这种技术仍然被消息传递聚合器和运营商广泛使用,但似乎SMPP规范没有得到更新,对SMPP库的支持正逐渐消失."SMS论坛"(http://www.smsforum.net)于2007年关闭.

对我而言,感觉协议正在为支持Web服务接口而死,但我很好奇其他人的想法.

mobile sms smpp

8
推荐指数
1
解决办法
4078
查看次数

使用.NET填充html列表控件

我有一个如下定义的列表:

<ul id="myList" class='myClass'>
    <li class="myItemClass">Item 1</li>
    <li class="myItemClass">Item 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

使用.NET如何动态地向列表中添加项?我还需要在每个新项目上指定类名

.net html c# vb.net

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

封装在框架时代

在我以前的旧C++工作中,我们总是非常谨慎地封装成员变量,并且只在绝对必要时将它们作为属性公开.我们有真正特定的构造函数,确保在使用之前完全构造对象.

现在,使用ORM框架,依赖注入,序列化等,似乎你最好只依赖于默认构造函数并在属性中公开类的所有内容,这样你就可以注入东西,或者构建和填充对象更动态.

在C#中,使用Object初始化器更进一步,这使您能够基本定义自己的构造函数.(我知道对象初始化器不是真正的自定义构造函数,但我希望你明白我的意思.)

对这个方向有任何普遍关注吗?似乎封装开始变得不那么重要,有利于方便.

编辑:我知道你仍然可以仔细封装成员,但我只是觉得当你想要创建一些类时,你要么坐下来仔细考虑如何封装每个成员,或者只是将它作为属性公开,并担心以后如何初始化.这些日子似乎最简单的方法是将事物作为属性暴露,而不是那么小心.也许我只是错了,但这只是我的经验,特别是新的C#语言功能.

constructor frameworks encapsulation dependency-injection

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

使用[assembly:]进行log4net配置

我很好奇以下行如何在程序集中配置log4net:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]
Run Code Online (Sandbox Code Playgroud)

我猜这个在运行时调用"main()"之前的某个时间调用,但是什么时候发生这种情况,有什么影响呢?是否有其他框架/库使用此程序集属性来加载这样的初始上下文?做这样的事情是否有任何优点/缺点,而不是在main()中调用"Configure"方法?

c# configuration log4net assemblies

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

用它来调用实例变量?

您应该使用"this.variablename"还是仅使用"variablename"来引用方法中的成员变量?

java

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