C# CLS не охватывает передачу параметра ulong? - PullRequest
0 голосов
/ 07 августа 2020

Следующее из книги по C#.

Чтобы проиллюстрировать, следующий метод Add () не является CLS-совместимым, поскольку параметры и возвращаемые значения используют данные без знака ( что не является требованием CLS):

class Calc
{
// Exposed unsigned data is not CLS compliant!
public ulong Add(ulong x, ulong y)
{ return x + y;}
}

Что это означает? Как функция может не принимать значение ulong? Разве это не описано в CLS (Common Language Specification) для C#?

Я пробовал пример, и он строится и работает нормально. Я думал, что передача аргумента ulong очень проста c. Что означает этот параграф?

1 Ответ

2 голосов
/ 07 августа 2020

Это означает, что какой-либо другой вариант. NET может не использовать этот метод, поскольку он не поддерживает типы данных без знака. . NET - это не только C #; существует множество синтаксисов, которые компилируются в то же самое основное, что и C# - одна из привлекательных сторон. NET состоит в том, что если кто-то написал компилятор для вашего любимого синтаксиса программирования (скажем, COBOL), который выдает. NET IL затем вы можете написать свой COBOL, вы можете использовать библиотеки, написанные на C#, вы даже можете разместить их рядом в одном решении (попробуйте; поместите проект vb. net и c# в решение, ссылаться одно на другое и отлаживать его - отладчик с радостью будет переключаться между ними) что-то и хотите убедиться, что все варианты поддерживают то, что вы пишете, вы помечаете свою сборку как совместимую с CLS и придерживаетесь правил

...