Форум программистов, компьютерный форум CyberForum.ru

C#: Задачка на строки

Войти
Регистрация
Восстановить пароль
Оценить эту запись

C#: Задачка на строки

Запись от NickoTin размещена 29.01.2014 в 03:14
Обновил(-а) NickoTin 29.01.2014 в 22:06 (restore)
Метки csharp, strings

Есть код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static string Do ( string a )
{
    fixed ( char* ptr = a )
        ptr[0] = 'B';
    return "A";
}
 
static void Main ( string[] args )
{
    string a = "A";
    string b = Do( a );
}
Что будет в b (13 строчка) после выполнения функции Do, и пояснить почему так
Ответ прост, нужно только вспомнить основные главы книг в которых описывается string.

Не по теме:

з.ы. Если есть предложения как обозвать запись, велкам )

Размещено в C# .NET, .NET
Просмотров 963 Комментарии 4
Всего комментариев 4

Комментарии

  1. Старый комментарий
    "B"? строки из 5-й и 12-й строки будут закэшированы интернированы (или как это называется в .NET)
    Запись от Jupiter размещена 29.01.2014 в 16:19 Jupiter вне форума
  2. Старый комментарий
    Аватар для NickoTin
    Jupiter, ага если поместить блок fixed до выполнения Do, то будет "A". JIT при трансляции кода будет проверять кэш строк и если найдёт уже существующую то будет использовать ссылку на неё...
    Запись от NickoTin размещена 29.01.2014 в 19:09 NickoTin вне форума
  3. Старый комментарий
    Цитата:
    если поместить блок fixed до выполнения Do
    покажи на коде
    Запись от Jupiter размещена 29.01.2014 в 19:33 Jupiter вне форума
  4. Старый комментарий
    Аватар для NickoTin
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    static string Do(string a)
    {
        return "A";
    }
     
    static void Main(string[] args)
    {
        string a = "A";
        fixed (char* ptr = a)
            ptr[0] = 'B';
        string b = Do(a);
    }
    Запись от NickoTin размещена 29.01.2014 в 19:38 NickoTin вне форума
    Обновил(-а) NickoTin 29.01.2014 в 22:07
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru