Действительно ли C# является надмножеством C?

object Solution1 extends App {

  val input1 = "a,c,e,g,i,k"
  val input2 = "b,d,f,h,j,l"

  val i1= input1.split(",")
  val i2 = input2.split(",")

  val x =i1.zipAll(i2, "", "").map{
    case (a,b)=> a + b
  }

  println(x.mkString(","))

}
 //output : ab,cd,ef,gh,ij,kl
11
задан Tomasz Sabała 1 November 2018 в 16:34
поделиться

7 ответов

Одним словом, Нет.

37
ответ дан 3 December 2019 в 00:41
поделиться

C# происходит из "подобной c" семьи, что касается синтаксиса, но до архитектуры это чувствует больше как Java (никакие указатели [хорошо, как указано ниже, можно использовать их, но большинство людей не знает или заботится о том], массивы связываются проверенные, собрал "мусор" память, и т.д.).

Можно получить большую часть этого в C++, но не в ядре.

10
ответ дан 3 December 2019 в 00:41
поделиться

Не любым значимым способом. Это вдохновлено C (среди других), но они - вполне существенно различные языки.

13
ответ дан 3 December 2019 в 00:41
поделиться

C++ не является реальным надмножеством C ни один (см. текст ссылки),

4
ответ дан 3 December 2019 в 00:41
поделиться

C# и C действительно не связаны (кроме подобного синтаксиса). C# является jitted вниз к машинному коду от IL, когда программа запускается. C# не имеет указателей за исключением типов значения на том стеке. C# полностью безопасен с точки зрения типов, C не. C требует явного управления памятью, где, поскольку C# собран "мусор". Список различий продолжается и на...

3
ответ дан 3 December 2019 в 00:41
поделиться

Давайте поместим его как это:

C и C# подобны как rm -rf . / и # rm -rf . / подобны

Короче говоря, никакой C не является подмножеством C#. Вид многих управляющих структур базируется на C. Как, для циклов, переключатели, в то время как и так далее. В то же время C# запрещает потенциально опасные конструкции, как уменьшение со случая в переключателе при упущении повреждения; или помещение целого числа как, если условие, где булевская переменная ожидается. Вышеупомянутая кавычка означает, что C# и C могут выглядеть очень похожими, но перевести в весьма различные результаты. Где C не будет препятствовать тому, чтобы Вы удалили все из своего раздела, C# защитит Вас от выполнения этого по ошибке, фигурально говоривший.

На другом уровне C позволяет Вам преобразовывать тип указателей на целые числа, третировать их, вспоминать и затем ячейки памяти доступа, которые затем хранятся в том указателе. C не защитит Вас от доступа к памяти, которая не выделяется Вами. Вы получите катастрофический отказ - в лучшем случае C# - с другой стороны - будет иметь исключения, которые замечают Вас, когда Вы делаете вещи как доступ к объекту throgh нулевая ссылка.

8
ответ дан 3 December 2019 в 00:41
поделиться

C# очень отличается от C (и также C++ очень отличается от C). Это, не потому что semanthics, которые являются в конце, не слишком отличающемся, но из-за понятий, идеи, которые находятся позади C#.

Когда Вы программируете в C#, необходимо думать по-другому от того, что Вы используетесь, чтобы сделать при использовании C: это - основное различие.

2
ответ дан 3 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: