小编Jay*_*Jay的帖子

是否与空合并运算符"相反"?(...用任何语言?)

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

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

为什么有些微软语言被称为"视觉"?(Visual C#,Visual Basic .NET,Visual C++)

我理解可视化编程语言是那些允许程序员在屏幕上操作图形而不是文本对象来构建功能的语言.

我在C#,VB等中看到的最接近的东西是RAD控件,但这只是组成UI和最简单的功能 - 它甚至与语言本身无关.

那么,为什么C#称为"Visual C#",Basic .NET称为"Visual Basic .NET"等?
什么是"视觉",或命名背后的理由或历史是什么?

.net c# c++ vb.net

23
推荐指数
4
解决办法
3241
查看次数

正则表达式只匹配第一行?

是否可以仅使正则表达式匹配文本的第一行?如果我有文字:

这是第一行.
这是第二行....

它将匹配"这是第一行.",无论第一行是什么.

regex

18
推荐指数
3
解决办法
4万
查看次数

性能:总是分配布尔值还是先检查值?

我确定它可以忽略不计,但鉴于我想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)

.net c# vb.net boolean

18
推荐指数
3
解决办法
8193
查看次数

使用Excel VBA重命名文件

这就是我需要做的.我在excel表中有这两列.带文件名.第一列具有当前文件名,第二列具有我希望将文件重命名为的名称.我需要使用它,因为重命名没有模式.例如,下面可能是一组文件......

Current Name >  Rename To
---------------------------
Abc.jpg       >   Dinner.jpg

Xyz.jpg       >  Driving.jpg

123.jpg       >  Sunset.jpg
Run Code Online (Sandbox Code Playgroud)

我知道在VBA中应该很容易做到这一点,但不确定如何.任何帮助将非常感激.

excel vba rename

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

我应该将DTO映射到客户端和服务器端的域实体吗?

我有一个丰富的域模型,其中大多数类都有一些行为和一些属性,可以计算或公开成员对象的属性(也就是说这些属性的值永远不会被持久化).

我的客户端只通过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?

如果我使用域实体,那么流程就是

  1. 客户请求对象
  2. WCF将请求发送到服务器
  3. ORM查询数据库并返回域实体
  4. 域映射实体转换为DTO的域实体
  5. WCF序列化DTO并返回客户端
  6. 客户端反序列化DTO
  7. DTO通过映射器转换为域实体
  8. viewmodels创建

回程类似

如果我直接映射到DTO,我可以根据请求消除每个对象的一个​​映射.这样做我会失去什么?

唯一想到的是在插入/更新之前验证的另一个机会,因为我不能保证DTO在被发送之前经过验证或者甚至作为域实体存在,我想有机会验证select(如果另一个进程可能在数据库中放置了无效值).还有其他原因吗?这些原因是否足以保证额外的映射步骤?

编辑:

我之前确实说过"任意ORM",我确实希望事情尽可能与ORM和持久性无关,但是如果你有任何特殊的东西可以添加到NHibernate,那么一定要做.

.net mapping orm serialization dto

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

在elixir中定义匿名函数后显示的数字是多少?

在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>

返回的数字是多少,它是如何派生的?

elixir

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

在WPF/Silverlight ListBox中的项目之间添加空格,而不是在第一个或最后一个之上的空格

是否有标准/最佳方式来在WPF中空间项目ListBox,以便连续项之间有空格,但不高于第一个或低于最后一个?

对我来说,添加间距最明显的方法是修改ItemTemplate每个项目上方和下方的上方,下方或两者的包含空间.当然,这意味着第一个和/或最后一个项目上方/下方的空间或单个项目.

我可以使用触发器为第一个,最后一个,中间项目选择不同的模板,但是想知道是否有更简单的东西我不知道 - 似乎控制间距是一个常见的要求.

谢谢.

注意:我在WPF中工作,但假设这与Silverlight XAML中的相似(如果不相同).

.net silverlight wpf xaml listbox

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

简单定义"语义",因为它常用于编程语言/ API?

今天我想到,尽管我在引用语言元素和命名约定时已经采用并且不经常使用术语"语义",但我没有任何正式定义的意义.

我试图在编程领域找到一个正式的定义让我眼前一亮.

我从我遇到它的语境中以及它在语言学方面的更常见用法中感受到它的含义,我通常使用该术语来指代语言元素的含义或表达力,或者保真度.命名的命名与其命名的意图,行为或功能.

不过,这个定义是我自己的想法.我是一名人类学/英语专业,从未上过计算机科学课程.这是在CS教的吗?

是否有更准确的定义可以归结为一两个陈述,而不是一篇详尽而令人筋疲力尽的文章?

computer-science programming-languages definition semantics

9
推荐指数
3
解决办法
7784
查看次数

我可以在Vim中对可视块选择执行多个操作吗?

我在Windows上使用GVIM,如果重要的话.

我经常选择一个块,做一些事情,然后需要用相同的块做一些其他事情,但当然一旦我对块做了什么,我就没有视觉模式了.

有没有办法重新选择或操作以前选择的视觉块?

vim text-editor

9
推荐指数
2
解决办法
700
查看次数