首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果with关键字不好(对于C#),这是一个不错的选择吗?

如果 with 关键字在 C# 中不被推荐使用,那么以下是一些替代方案:

  1. 使用对象初始化器:
代码语言:csharp
复制
var person = new Person
{
    Name = "John",
    Age = 30
};
  1. 使用静态工厂方法:
代码语言:csharp
复制
var person = Person.Create("John", 30);
  1. 使用构造函数链:
代码语言:csharp
复制
public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public Person(string name) : this(name, 0)
    {
    }

    public Person() : this("Unknown")
    {
    }
}

这些方法都可以用来简化对象的创建和初始化,而不需要使用 with 关键字。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#系列之编程语言好坏撕逼大战

虽然微软经常干虎头蛇尾事,但.NET是个例外,至少目前来看,.NET语言层面的推广和维护做还是很不错,近期微软对于开源及Linux系统上Mono支持力度还是很不错,并且已经开源了CLR,我们可以预见不久将来很多高级定制...当然Java也有画错时候,比如12306那个做烂呀,你们不是说Java很棒?我笑笑。 重建时机好不好一个平台生态系统重建绝非一朝一夕,必须大家配合,特别是微软这位大哥配合。...其实Java为什么会这么火,很大程度上要感谢开源社区,其实很多公司选择Java一个重要原因是因为他们觉得Java开源组件很多,其实同一个功能选择也很多,而且又是免费+开源,何乐而不为,大不了让苦逼程序员去理解源代码然后定制...支持(0)反对(0) 回复引用 #263楼 2015-04-29 19:35 HolleHuang 好吧,如果要是用来做界面开发,肯定是选择C#如果是做服务器,我会选择Java,虽然性能上Java...支持(0)反对(0) 回复引用 #272楼 2015-04-29 20:28 超然 @HolleHuang 引用好吧,如果要是用来做界面开发,肯定是选择C#如果是做服务器,我会选择Java

2.3K70

2023年底了,聊聊.NET现状

最近,知乎上新出现了一些关于C#/.NET问答,它们是:2023年C#找工作行情如何?2023年了,能说一说C#目前情况?2023年选Java还是Golang还是C#?...招聘难度也很大,但是因为生产力强大,一个人可以产生竞品好几个人产出,这种我就选择 c#。这类更难招,总体感觉是 cpp 转行比较适合。...语法:有很多新语法,可以不学,有很多高性能数据结构和库,如果对于高性能IO感兴趣,有一个微软官方维护高性能库,并且有很多数据结构已经应用到kestrel中,可以学习。...net core性能和托管特性是真的强大,这是一种在cpp上看不到强大,几乎成为了性能强大,稳定性要求高相关工控机上不二选择我现在在做隧道及公路相关工控软件开发,这种软件是很难测试,在实验室内只能保证东西转起来...,但是稳定性、可靠性这些东西在实验室内不好测试,或者说运行稳定还好,一出现异常马上整次作业整个报废这种情况也是时有发生,这是非常非常不可接受,所以相比起cpp这样可能出现异常崩溃之后无法挽救语言,C

2.5K140

关于初学Go语言一些事

对于现在既要写Python又要写Go的人来说,没有什么比在一个编辑器里都能搞定更爽得事了,可见之前学习成本还是有价值。当然用Emacs和Sublime也一样搞定。...或者是学习一门新语言时候,这个map不就是之前dict,只是稍稍不同而已,这个struct不就是C中struct嘛。 这就是人类,本能属性,这是个优点。...其实写多了发现比C要简单多了,对于一个在用Python战斗的人来说,我必然得把它映射到Python上。你看那main不就是python中 if __name__ == "__main__" 。...从这几天写代码来看,代码量确实接近Python。使用起来像Java还是因为我早先是做Java程序,当然了如果我从C#直接转到Python的话我会说像C#。至于为啥,请参考上面。...编译完直接可用 这确实是相当不错做法,把上面的代码保存成hellowrold.go,然后执行go build helloworld.go,立马生成当前平台可执行文件,只有一个文件,没有什么dll或so

44220

函数式编程很难,这正是你要学习它原因

知道Python的人学习Ruby可能不会遇到太多问题,知道Java的人学习C#会感到很熟悉。不错,也有意外地方。...各有所求   所以,我鼓励任何想进步程序员:请考虑学习一种函数式语言。Haskell和OCaml都是极好选择,F#和Erlang也相当不错。它们都不好学,但也许这是个好事。...补充   有不少校对这篇文章的人在看完文章后都问了我一个同样问题:听起来不错,大卫,可是我应该学习那种语言呢?当然,这是他们给我出难题。   ...我想,如果你是一个很有经验程序员,这最能应付这个问题答案是:选一种符合你需求如果你需要在JVM上工作,选择Scala或Clojure。...如果你想能快速开发大型分布式软件系统,选择Erlang。如果你想要一种具有超强编译器超能干活语言,请选择Haskell或RCaml。

1K51

使用C# (.NET Core) 实现单体设计模式 (Singleton Pattern)

B: 是的, 但是它必须是public类额 A: 如果不是public呢? B: 如果不是public, 那么只有同一个包下类才能对它实例化, 但是仍然可以实例化多次....请看下图: 处理多线程问题 为了解决这个多线程问题问题, 可已使用synchronized方法: (synchronized是java里关键字, C#请参考下面我写代码) 使用synchronized...所以如果性能是问题, 就可以使用这个方法. 其他问题 Q: 如果我创建一个类, 里面都是静态方法和静态变量, 那么它效果和单体模式不是一样?...A: 是的, 如果你类没有其他依赖并且初始化并不复杂的话. Q: 可以继承单体模式? A: 简单回答就是: No. Q: 为什么单体模式比全局变量好?.../.NET Core异步和多线程文章(也会是书上内容, 这本书叫 C# 7 in a Nutshell, 我认为这是最好C#/.NET Core参考书, 可是没有中文, 所以我就是做一下翻译和精简

94440

C#5.0新增功能01 异步编程

如果需要 I/O 绑定(例如从网络请求数据或访问数据库),则需要利用异步编程。 还可以使用 CPU 绑定代码(例如执行成本高昂计算),对编写异步代码而言,这是一个不错方案。...在大多数情况下模型十分简单: 对于 I/O 绑定代码,当你 await 一个操作,它将返回 async 方法中一个 Task 或 Task。...对于 CPU 绑定代码,当你 await 一个操作,它将在后台线程通过 Task.Run 方法启动。 await 关键字有这奇妙作用。...如果 await 未用在 async 方法主体中,C# 编译器将生成一个警告,但此代码将会以类似普通方法方式进行编译和运行。...如果调用方不希望 async void 方法是异步方法,则这些方法可能会产生不好副作用。

2.3K20

C# 8.0 中模式匹配

我们不能就使用传统方式?当然可以。尽管模式匹配等附加功能肯定会改变许多人编写代码方式,但对于多年来引入其他语言功能我们也可以提出同样问题。...彻底改变 C# 语言其中一个功能就是引入语言集成查询 (LINQ)。现如今处理数据时,人们会按自己喜好来进行选择。...缺少部分就是将绿色苹果筛选出来方法。你见过异常筛选器这是 C# 6.0 中引入功能,使用它可在仅满足特定条件时捕获特定异常。此功能引入了 when 关键字,它也适用于模式匹配。...如果你查看元组、解构和所谓递归模式组合,C# 8.0 中对模式匹配更改就会非常明显。 表达模式 递归模式是指一个模式匹配表达式输出变为另一个模式匹配表达式输入。...这是一个非常简单场景。 根据这些不同值,我可以通过构造更多元组以及一个位置模式来匹配不同情况。这就是元组模式。如果我尝试打开关着但没有锁着门,就会产生新状态,告知门现在是开着

1.8K10

Github Copilot 值得购买?使用GitHub Copilot进行快速EDA示例

点击上方“Deephub Imba”,关注公众号,好文章不错过 !...例如,你可以输入“编写一个函数来反转二叉搜索树”,它可以自动完成。并且它与以下 IDE 兼容: 数据集概述 我们选择数据集是从 UCL 机器学习存储库下载。...而 GitHub 提供了简单方法,这种捷径对于学习来说并不好如果在编程方面具有中级经验和知识的人,那么你就可以开始了。因为它可以使你更容易编码以及更快地完成项目。...现在我们最终问题将是“它值得花钱?”。 如果你是学生,那么可以申请教育免费版,所以强烈推荐你使用它(因为白嫖使人快乐)。...但是需要记住是它支持是以下语言( Python, JavaScript, TypeScript, Ruby, Go, C#, C++),所以如果你用JAVA,那还是不用考虑了。

1.9K10

(9)有一些人在学习编程时候总以为代码是死板

小C:难道你以为就这一点? 小媛:难道不是? 小C:你是不是以为编程就是那么死板?老师教给你知识点后你就以为老师教给你知识点就是大部分了吗? 小媛:那不就是怪你了嘛?...其实这是你还不熟原因,但是你不知道如何灵活运用会导致后你后面学习编程时候会有困难。 小媛:所以说你这是在为我好咯。 小C:那不是嘛 =。=。 赶紧讲吧,啰啰嗦嗦,不跟你拌嘴了。...小C:这一节我们讲的是 if 语句嵌套。 哈?这又是啥东西?套娃? 小C:昂,对,你看看下面这个代码。...这是啥新内容? 小C:看见了吗? if 语句圆括号里面嵌套了一个 if 语句。 :咦?!竟然可以这样? 小C:对呀,可以呀,不然你以为。...."); } } 小C:不错不错,使用 if 语句可以进行嵌套,一个流程条件触发正确后就会执行其对应流程,当然这个流程也是可以添加 if 语句或者其它语句。 :明白了,都是小问题。

35810

各大编程语言都摆起地摊

选择静态web服务器 一进集市,这烟火气就扑面而来,平时一个个端着架子C++、Java、Python居然能放下身段,招呼叫卖,我还是头一回见。 ? “老哥,需要来点什么?”...上万连接不在话下”,C语言摊主自豪说到。 ? 随后摊主给我展示了这个nginx服务器能力,果然不错,我加入了购物车,继续往前逛。 挑选web应用开发框架 没走几步来到 C# 摊前。...“哟,老哥,你这是要做网站啊?”,C#摊主主动给我打起了招呼。 “你怎么知道?”,我好奇问到。 “你这购物车里不是装了一个nginx嘛!...不过我还是拒绝了他:“实在不好意思,听说你们家产品只能在Windows系统上面运行,不支持Linux,还是算了,我再看看别家” C#摊主不肯放弃,“别呀,我们已经支持Linux了,您再看看,现在搞活动,...我看了一下产品说明书,感觉还不错,看了下钱包,刚才在Java摊主那里花费不少,有些囊中羞涩了,问到:“能不能优惠一点” C++摊主一听,脸上笑容少了一半,“如果你选个MongoDB组个套餐,可以给你8

68820

程序员面试什么最重要?​

一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好如果按照“算法好”单一标准选材,必定会把许多优秀的人才拒之门外。...张小龙原先Foxmail是Delphi开发,他不懂C#,你如果要招聘一个开发.NET Email客户端的人,你考察他对CLR掌握得好不好有意义?...让张小龙来开发一个C#Foxmail真的会有困难?你招一个精通C#但没有Email客户端开发经验的人来真的比张小龙靠谱? 我说基础知识不重要,和古人说“不积洼步无以至千里”是不是矛盾呢?...所以,基础好本身不足以说明太多问题,必须进一步考察综合能力。对于基础面试表现不好面试者,如果时间允许也要进一步考察,有的面试者其实是有能力,只是没有进行充分准备。...对于这类职位,没有经验面试者即使综合素质不错也是需要长时间学习和积累才能胜任。

20920

当我渡过计算机语言

——一直浸泡在高浓度“失败”情绪中,而且还提心吊胆害怕不知道什么时候出现 BUG,这不是一个让人容易接受工作。 如果一个人既不用担心柴米油盐,又喜爱编程这个工作,这是最好状态。...C# 好像一个各种语言特性大杂烩,或者叫博彩众家之长: Java 不是没有值拷贝变量类型?...你可以按 Java 类似的特性去写 C#,也可以用 C++ 想法去写 C#,不知道这是不是这门语言设计者目的呢?...运行环境依赖因素:如果要开发一个“跨语言”可用库,C 语言几乎是唯一选择如果要开发一款游戏,希望运行在不同平台上,使用带虚拟机语言,或者是某种脚本语言,譬如 TypeScript 可能是一个选择...也有一些团队,从游戏服务器端开始,不用 C++,而是用 Java 或者 C#。由于 Unity 引擎默认支持语言是 C#,所以服务器端也用 C# 也是一个常见选择。说到底还是开发工具决定了语言。

8210

采访Philipp Crocoll:安卓平台上整合Java和C#

一方面,我尽力让没有太多使用经验的人也能够使用这个应用,同时,也希望为担心安全问题用户提供选择。 InfoQ:在Keepass2Android中使用C#代替Java,你选择了什么语言?...由于Keepass 2是用C#,我评估了在安卓上用此实现可能性。这是我第一次接触Xamarin安卓版Mono。我早期工作中曾经做过一些C#开发,也有过一点安卓开发经验。...将这两个东西放到一起似乎是一件很有趣事情。我本人对新知识非常渴望,因此,这对我而言是一个很棒选择。...在我实现代码中,这是唯一一处“对象”处于两台虚拟机地方,这两个世界都有着各自垃圾收集机制。 InfoQ:你会考虑针对未来安卓项目再次使用C#?...并且,对于一个C#背景朋友而言,使用C#一些好特性(LINQ、Lambdas、动态类型等等) 以及.net框架,也是非常不错

1.7K80

(10)C#偷懒开始永无止境循环?

小媛:就是一直重复? 小C:是这个意思。循环就是指你指定一段代码重复执行。 小媛:唔,一般一句话二十个字不到能够解释清楚知识点都是超级简单。 小C:这都被你看出经验了?...不错不错,那你看下面这个代码。...小媛:这代码就是创建一个变量 i,整型并且赋值为 0 呗。 小C:那我就告诉你下面的 while 就是表示要执行一个循环了,这个 while 就是一个关键字。 小媛:然后呢?...小C:while 后面的圆括号中就是表示一个条件,当这个条件是对时候就执行循环,如果错了,那么就不执行了。 小媛:是不是对时候可以称为 真,错时候可以称为 假?...在编程中,如果循环一直重复,是没有意义,必须给这个循环一个关闭条件。 小媛:所以 i 这个变量每次就要加一,这样的话就会让这个循环有意义,在这里你是 i<10 就表示这样可以让这个循环存在意义。

32920

以下是Python三大主要用途

Django:如果你关注最终产品,或者你正在研究一个简单应用,比如新闻网站、网店或博客,并且你希望有单一实现方式。 换句话说,如果你是初学者,Flask可能是更好选择,因为它要掌握组件更少。...或者可以检测图片中边缘,如果有很多直边缘,那么就是桌子。 但这种方法很快就不好用了。如果图片中狗不是棕色毛怎么办?如果图片只显示桌子圆形部分怎么办? 这里就需要用到机器学习了。...在那儿工作时,我任务是计算包含关键字邮件数量,以便分析我们收到电子邮件。这可以手动完成,但我写了一个简单脚本来自动执行此任务。...当时我们使用了Ruby,但对于这类任务Python也是不错选择。Python适合这类任务,因为它语法简单,易于编写,而且进行测试也很快。...游戏开发 你可以用PyGame来开发游戏,但这并不是最受欢迎游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。 我建议使用UnityC#这是最受欢迎游戏引擎之一。

1.7K10

Web开发纠结于编程语言是非常不必要

在搞Web开发以来,混迹在V2EX和知乎,看到最多就是关于进入Web开发,选择什么语言问题,看来对于某些人来说,语言太多了也是一件头疼事情,于是纠结在不同语言各种特性比较之中...从高中接触互联网以来,尤其开始使用PHP各种开源程序以后,经过各种开源理念熏陶,现在对Java、C#什么靠大公司垄断或者支持产品确实提不起兴趣,不是说这些不好,而是不太符合自己想法,如果说以后为了混饭吃...有人对Python最大不满就是,代码块以强制缩进来表示,认为这是顽固毫无情趣古板东西,而这却是Python理念之一,解决一个问题有一种方法就行了——简洁和清晰。...有人会抱怨说Python、Ruby什么叫脚本语言,是不是太那个啥了,功能够用?速度够快?...如果有创意,快速实现是非常重要,而你也不必纠缠于不同语言各种特性之中,找一个自己看着舒服,写着有趣语言,用着方便框架赶紧上吧,如果你已经会Java或者C#这些,那也上吧,不要犹豫了,如果你能保证你使用汇编或者

2.4K160

C# 这些年来受欢迎特性

匿名方法 协变和逆变 泛型 迭代器 可空类型 部分类型 我最在最喜欢 泛型 还是 迭代器 之间摇摆,对我来说这是一个非常困难选择,最终还是更喜欢泛型,顺便说说其中缘由。...我就想问,谁没有写过重载或者带有可选参数方法? 当您编写可选参数时,您必须为其提供一个默认值。如果参数是一个值类型,那么它必须是一个文字或者常数值,或者你可以使用 default 关键字。...这是 C# 一个重大飞跃 - 它引入了一个语言级别的异步模型,它极大地赋予了开发人员编写外观和感觉同步 (或者至少是连续) “异步”代码。...然后,将结果 JSON 反序列化到 Result类实例中,并返回 Joke 属性。 C# 6.0 C# 6.0 有很多很不错改进,很难选择我最喜欢特性。...再次,这是一个了不起特性,只不过不是我最喜欢 C# 7.0 特性。 元组也是一个很好改进,是服务于语言这一重要部分,能成为一等公民真是值得庆祝。

17220

精:C#这些年来受欢迎特性

匿名方法 协变和逆变 泛型 迭代器 可空类型 部分类型 我最在最喜欢 泛型 还是 迭代器 之间摇摆,对我来说这是一个非常困难选择,最终还是更喜欢泛型,顺便说说其中缘由。...我就想问,谁没有写过重载或者带有可选参数方法? 当您编写可选参数时,您必须为其提供一个默认值。如果参数是一个值类型,那么它必须是一个文字或者常数值,或者你可以使用 default 关键字。...这是 C# 一个重大飞跃 - 它引入了一个语言级别的异步模型,它极大地赋予了开发人员编写外观和感觉同步 (或者至少是连续) “异步”代码。...然后,将结果 JSON 反序列化到 Result类实例中,并返回 Joke 属性。 C# 6.0 C# 6.0 有很多很不错改进,很难选择我最喜欢特性。...再次,这是一个了不起特性,只不过不是我最喜欢 C# 7.0 特性。 元组也是一个很好改进,是服务于语言这一重要部分,能成为一等公民真是值得庆祝。

15630

【5min+】帮我排个队,谢谢。await Task.Yield()

签名是这样: public static YieldAwaitable Yield(); 对于Yield这个单词,可能一下就会让我们联想到C# 里面的关键字 yield return 和yield...它会和我们C#里面都关键字一样? 而且您会在某些框架或者代码中看到:一旦使用它的话前面都会加上await关键字。这样就写成了 await Task.Yield() 。那么这种写法到底有什么意义呢?...如果把我们系统资源看做是火锅店里面的位置,此时我们构建了一个非常消耗时间任务需要做,这个任务您就可以看做是我们寝室聚餐,因为小王加班,所以导致我们需要消耗太多时间。...那么,它和我们传统关键字yield return有什么联系对于传统yield return关键字,它会返回一个IEnumerable对象,该对象可以被我们使用foreach语法糖来进行迭代。...让系统去调度其他更需要做任务,稍后再来完成方法体内耗时操作。 那么如果我只使用Task.Yield(),而不使用await关键字呢? 哈哈,这是个秘密,嘘。(您可以在上面的demo代码中尝试)。

2.2K30

我是如何在自学编程9个月后找到工作

这是一个巨大错误。不好说前端比后端更容易,或是更难。关键是,你也无法知道自己会更喜欢什么,更适应什么。所以不要假设。永远不要认为 JavaScript 比 C 更容易或是更难。...更具体地说,无论你选择何种编程语言(Java,JavaScript,C#,Python 和 PHP 中任何一种都可能找到工作),尽可能地学习它基础知识。我学习了前端开发。...(一个过来人建议和指导对于学习非常有帮助,这是任何书本、教程或者视频都无法达到。关于这点,参与过编程教室码上行动各位同学应该深有体会 ?...你有两个选择:参与开源项目(写点有用库/模块,哪怕提交一个修改也能加分)或者开发一些人们会用到东西,甚至是给别人免费使用。我选择了第二种。...我们也举过很多例子,公众号Crossin编程教室里回复关键字 项目) 最后就是你知识,而且这很重要。如果没人帮你递简历,说你是个优质资源,那知识就是你最后王牌。

1.2K30
领券