null coalescing大致翻译为 return x, unless it is null, in which case return y
我经常需要 return null if x is null, otherwise return x.y
我可以用 return x == null ? null : x.y;
不错,但null
中间总是困扰我 - 这似乎是多余的.我更喜欢这样的东西return x :: x.y;
,::
只有在它之前的东西不是的时候才会评估null
.
我认为这几乎与null合并相反,有点简洁,内联null检查,但我[ 几乎 ]确定在C#中没有这样的运算符.
(我知道我可以用C#编写一个方法;我使用return NullOrValue.of(x, () => x.y);
,但如果你有更好的东西,我也希望看到它.)
c# syntax programming-languages operators null-coalescing-operator
我理解可视化编程语言是那些允许程序员在屏幕上操作图形而不是文本对象来构建功能的语言.
我在C#,VB等中看到的最接近的东西是RAD控件,但这只是组成UI和最简单的功能 - 它甚至与语言本身无关.
那么,为什么C#称为"Visual C#",Basic .NET称为"Visual Basic .NET"等?
什么是"视觉",或命名背后的理由或历史是什么?
是否可以仅使正则表达式匹配文本的第一行?如果我有文字:
这是第一行.
这是第二行....
它将匹配"这是第一行.",无论第一行是什么.
我确定它可以忽略不计,但鉴于我想true
从一个方法中分配一个布尔字段,这个选择有什么不同吗?如果是这样,为什么?
field = true; // could already be true, but I don't care
Run Code Online (Sandbox Code Playgroud)
与
if(!field) field = true;
Run Code Online (Sandbox Code Playgroud) 这就是我需要做的.我在excel表中有这两列.带文件名.第一列具有当前文件名,第二列具有我希望将文件重命名为的名称.我需要使用它,因为重命名没有模式.例如,下面可能是一组文件......
Current Name > Rename To
---------------------------
Abc.jpg > Dinner.jpg
Xyz.jpg > Driving.jpg
123.jpg > Sunset.jpg
Run Code Online (Sandbox Code Playgroud)
我知道在VBA中应该很容易做到这一点,但不确定如何.任何帮助将非常感激.
我有一个丰富的域模型,其中大多数类都有一些行为和一些属性,可以计算或公开成员对象的属性(也就是说这些属性的值永远不会被持久化).
我的客户端只通过WCF与服务器通话.
因此,对于每个域实体,我有一个相应的DTO - 一个只包含数据的简单表示 - 以及一个mapper类,它实现DtoMapper<DTO,Entity>
并可以通过静态网关将实体转换为DTO等效或反之亦然:
var employee = Map<Employee>.from_dto<EmployeeDto>();
Run Code Online (Sandbox Code Playgroud)
此应用程序的服务器端主要是持久性,我的DTO从WCF服务进入,反序列化,然后任意ORM将它们持久存储到数据库,或者来自WCF的查询请求和ORM执行该查询数据库并返回要由WCF序列化和发回的对象.
鉴于这种情况,将持久性存储映射到域实体是否有意义,或者我应该直接映射到DTO?
如果我使用域实体,那么流程就是
回程类似
如果我直接映射到DTO,我可以根据请求消除每个对象的一个映射.这样做我会失去什么?
唯一想到的是在插入/更新之前验证的另一个机会,因为我不能保证DTO在被发送之前经过验证或者甚至作为域实体存在,我想有机会验证select(如果另一个进程可能在数据库中放置了无效值).还有其他原因吗?这些原因是否足以保证额外的映射步骤?
我之前确实说过"任意ORM",我确实希望事情尽可能与ORM和持久性无关,但是如果你有任何特殊的东西可以添加到NHibernate,那么一定要做.
在elixir中定义匿名函数时,会得到这样的结果.
#Function<6.90072148/1 in :erl_eval.expr/5>
我注意到的是这个数字是基于函数的arity.所以总是有1个arg函数
#Function<6.90072148/1 in :erl_eval.expr/5>
总是有两个arg函数
#Function<12.90072148/2 in :erl_eval.expr/5>
总是有三个arg功能
#Function<18.90072148/3 in :erl_eval.expr/5>
返回的数字是多少,它是如何派生的?
是否有标准/最佳方式来在WPF中空间项目ListBox
,以便连续项之间有空格,但不高于第一个或低于最后一个?
对我来说,添加间距最明显的方法是修改ItemTemplate
每个项目上方和下方的上方,下方或两者的包含空间.当然,这意味着第一个和/或最后一个项目上方/下方的空间或单个项目.
我可以使用触发器为第一个,最后一个,中间项目选择不同的模板,但是想知道是否有更简单的东西我不知道 - 似乎控制间距是一个常见的要求.
谢谢.
注意:我在WPF中工作,但假设这与Silverlight XAML中的相似(如果不相同).
今天我想到,尽管我在引用语言元素和命名约定时已经采用并且不经常使用术语"语义",但我没有任何正式定义的意义.
我试图在编程领域找到一个正式的定义让我眼前一亮.
我从我遇到它的语境中以及它在语言学方面的更常见用法中感受到它的含义,我通常使用该术语来指代语言元素的含义或表达力,或者保真度.命名的命名与其命名的意图,行为或功能.
不过,这个定义是我自己的想法.我是一名人类学/英语专业,从未上过计算机科学课程.这是在CS教的吗?
是否有更准确的定义可以归结为一两个陈述,而不是一篇详尽而令人筋疲力尽的文章?
我在Windows上使用GVIM,如果重要的话.
我经常选择一个块,做一些事情,然后需要用相同的块做一些其他事情,但当然一旦我对块做了什么,我就没有视觉模式了.
有没有办法重新选择或操作以前选择的视觉块?