Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Разрешает неявные сужающие преобразования типов #1096

Closed
MrSpecular opened this issue Aug 24, 2018 · 1 comment

Comments

@MrSpecular
Copy link

MrSpecular commented Aug 24, 2018

begin
  var x: integer := 256;
  var y: byte := x;
  Writeln(y); // <-- Потеря данных, вместо того, чтобы выдать ошибку компиляции.
end.

В C# аналогичный код:

using System;

class MainClass
{
	public static void Main (string[] args)
	{
		int x = 256;
		byte y = x;
		Console.WriteLine(y);
	}
}

выдает ошибку компиляции:

main.cs(8,13): error CS0266: Cannot implicitly convert type int' to byte'. An explicit conversion exists (are you missing a cast?)

. Цитата из Приведение и преобразование типов (Руководство по программированию на C#) -> Неявные преобразования:

Для встроенных числовых типов неявное преобразование можно выполнить, если сохраняемое значение может уместиться в переменной без усечения или округления.

.

@MrSpecular MrSpecular changed the title Разрешает сужающие преобразования типов Разрешает неявные сужающие преобразования типов Aug 24, 2018
@AlexRnD61
Copy link

После запрета Chr(13), к примеру, работать уже не будет. Класс!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants