当前位置: 首页 > 知识库问答 >
问题:

c#基础知识有个点不怎么懂?

伯晨
2023-06-30

c#中定义字符串数组用:
string[] str = { "张三", "李四" };
为什么不是:
string[] str = ["张三", "李四"];

共有2个答案

郎德馨
2023-06-30

C# 里没有类似 JS 数组/对象字面量的那种写法,除了基础类型外,其他类型都得 new 出来赋值。

你这里其实是一个简写形式的语法糖,完整写法是:

string[] arr = new string[2] { "a", "b" };

后面的 new string[2] 可省略,编译器会根据你前面变量声明限定的类型、以及后面的元素数量自动推断。

这种语法糖叫做“静态初始化”,跟 Java 是一样的:

String[] arr = { "a", "b" };

甚至这个所谓的“完整写法”,本身也是一种简写语法糖,其真正的完整写法是:

string[] arr = new string[2];
arr[0] = "a";
arr[1] = "b";

但跟 Java 不同的是,C# 里任何集合类型(Collections)都可以通过静态初始化的语法糖快速初始化并填充数据:

List<string> list = new List<string>() { "a", "b" };

Dictionary<string, string> map = new Dictionary<string, string>() 
{
   { "k1", "v1" },
   { "k2", "v2" }
};

而 Java 只有数组有这种快速填充的语法糖,其他诸如 ArrayList 的对象只能 new 完以后老老实实挨个往里 add。

P.S. 楼上简直胡说八道,这里的花括号跟数组根本就没关系,扯什么语法强制规定,估计是 ChatGPT 生成的答案。

秦禄
2023-06-30

挺好的,有任何问题就提,才会进步!
在C#中,声明字符串数组需要使用花括号({})来定义数组的元素。语法上需要使用大括号来表示数组,而不是方括号,这是强制的语法规定。

正确的方式是使用大括号来包围数组元素,比如下面这样

`string[] str = { "张三", "李四" };
`
这样就可以创建一个包含两个字符串元素的字符串数组。

方括号([])一般用于索引数组的元素,例如:str[0] 表示获取数组 str 的第一个元素。

好了,回答完了你的困惑,我再进一步补充一下这个问题,这样可以帮助你更好的理解,在以后的学习中,你依然会碰到这个括号的问题,有这种可能性,因为不熟悉的问题,因此要多敲代码,把这个强制规定记牢。另外,关于数组元素的问题,在后期你的学习中,数据结构部分和算法的用处对于括号的考察非常非常多,牛客网一类的网站也有很多类似的选择计算题,要多做多记,加油!

 类似资料:
  • 本文向大家介绍C++基础知识总结,包括了C++基础知识总结的使用技巧和注意事项,需要的朋友参考一下 不管是自我定位太高,还是职位层次太低,系统复习了一遍很久没有摸过的C++总是有好处的。总结如下: 一、new和malloc的区别 1、new和delete配对,释放数组需要用delete[]。new和delete实际上调用了malloc和free,另外调用了类的构造函数和析构函数。 2、malloc

  • 本文向大家介绍C#基础知识之FileStream,包括了C#基础知识之FileStream的使用技巧和注意事项,需要的朋友参考一下 一、FileStream的基础知识   属性:            CanRead 判断当前流是否支持读取,返回bool值,True表示可以读取            CanWrite 判断当前流是否支持写入,返回bool值,True表示可以写入   方法:    

  • 本文向大家介绍Python基础知识点 初识Python.md,包括了Python基础知识点 初识Python.md的使用技巧和注意事项,需要的朋友参考一下 Python简介 Python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本J

  • 基础知识 基于 ruby 写的 官网文档:https://www.elastic.co/guide/en/logstash/5.2/first-event.html 如果是通过网络来收集,并不需要所有机子都装,但是如果是要通过读取文件来收集,那文件所在的那个机子就的安装 配置文件的写法格式:https://www.elastic.co/guide/en/logstash/5.2/configura

  • 这些基础知识简单了解一下就可以了,Linux 用的多了 就会慢慢熟悉理解了。 快捷键表 Ctrl键是终端用户常用的按键,但大多数触摸键盘都没有这个按键,因此 Termux 使用音量减小按钮来模拟Ctrl键。 例如,在触摸键盘上按音量减小+ L就相当于是键盘上按Ctrl + L的效果一样,达到清屏的效果。 Ctrl + A -> 将光标移动到行首 Ctrl + C -> 中止当前进程 Ctrl +

  • 什么是 Logstash?为什么要用 Logstash?怎么用 Logstash? 本章正是来回答这个问题,或许不完整,但是足够讲述一些基础概念。跟着我们安装章节一步步来,你就可以成功的运行起来自己的第一个 logstash 了。 我可能不会立刻来展示 logstash 配置细节或者运用场景。我认为基础原理和语法的介绍应该更加重要,这些知识未来对你的帮助绝对更大! 所以,认真阅读他们吧!