Для C# я не полагаю, что существует , определил жесткий предел. (Разделите 2.4.2 из спецификации C# 5, не дает предел, например.) Рослин v2.2.0.61624, кажется, имеет предел 1 024 символов; это - путь вне границ удобочитаемости и даже разумного сгенерированного машиной имени.
Для Java, раздел 3.8 из состояний спецификации :
идентификатор является последовательностью неограниченной длины букв Java и цифр Java, первой из которых должна быть буква Java.
PHP, кажется, ограничен только пределом памяти сценария.
С 128 МБ я смог создать класс (и метод) с 4 миллионами символов.
<?php
ini_set('memory_limit', '128M');
$i = 1024 * 1024;
while ($i < 10000000)
{
$className = str_repeat('i', $i);
eval("class $className { public function $className() { echo '$i<br>'; } }");
new $className();
$i *= 2;
}
?>
Имена символов языка Common LISP являются строками; строки имеют предел длины array-dimension-limit
, значение array-dimension-limit
является положительным целым числом, которое является верхним эксклюзивным, привязал каждый отдельный размер массива. Связанный зависит от реализации, но не будет меньшим, чем 1 024. (Конструкторы поощряются сделать этот предел столь же большим как реальным, не жертвуя производительностью.)
На практике это может быть довольно большое
Welcome to Clozure Common Lisp Version 1.3-dev-r11583M-trunk (DarwinX8664)!
? array-dimension-limit
72057594037927936
?
Welcome to Clozure Common Lisp Version 1.3-dev-r11583M-trunk (DarwinX8632)!
? array-dimension-limit
16777216
?
, Этот ответ игнорирует имя пакета имени метода; это могло удвоить lengh.
В D я не знаю, что это имеет место, но я подозреваю, что это - что-то безумное как> 100 МБ. Это могла бы быть вещь из памяти. Это основано на знании, что я и другие люди столкнулись с ограничением формата объектных файлов приблизительно 11 КБ для имен символа и что это было зафиксировано.
В Java я полагаю, что предел длины не дан. Посмотрите это из Учебного руководства по Java Sun онлайн:
Имена переменной чувствительны к регистру. Имя переменной может быть любым легальным идентификатором — последовательность неограниченной длины букв Unicode и цифр, начавшись с буквы...
Как другие выше, я предположил бы, что длина зависит от доступной памяти.
Реализация Microsoft C # - 511, реализация VB.NET - 1023.
Visual Studio раскрасит только первые 511 (1023 для VB) символов идентификатора, а остальные оставит черным.