Фиксированный оператор в C#

Более короткий и чистый способ сделать это - использовать одну кнопку для проверки и получения обоих входных значений, а затем присвоить полученные значения вашему массиву firsttext следующим образом:

[117 ]
/* JavaScript */

var btn = document.querySelector("button");
var firsttext = [];

btn.addEventListener("click", function(){
  var player1 = document.getElementById("firsttext");
  var player2 = document.getElementById("secondtext");
  
  if (player1.value != "" && player2.value != "") {
    firsttext.push(player1.value);
    firsttext.push(player2.value);
    alert(firsttext);
    return firsttext;
  } else {
  	alert("Enter players' names");
  }
	
});
<!-- HTML -->

<section id="first_section" class="first_section">
  <input type="text" placeholder="Nom du premier joueur" id="firsttext"><br>
</section>
<p></p>
<section id="second_section" class="second_section">
  <input type="text" placeholder="Nom du deuxième joueur" id="secondtext"><br>

</section>

<section id="button">
    <button type="button" id="second_button">Suivant ></button>
</section>

12
задан Cyril Gandon 8 April 2013 в 12:27
поделиться

5 ответов

Это чинит указатель в памяти. Собравшие "мусор" языки имеют свободу переместить объекты вокруг памяти для эффективности. Это все очевидно для программиста, потому что они действительно не используют указатели в "нормальном" коде CLR. Однако при требовании указателей затем необходимо зафиксировать его в памяти, если Вы хотите работать с ними.

17
ответ дан 2 December 2019 в 04:03
поделиться

Фиксированный оператор "прикрепит" переменную в памяти так, чтобы сборщик "мусора" не перемещал его при сборе. Если бы это действительно перемещало переменную, то указатель стал бы бесполезным и когда Вы использовали его, Вы будете пытаться получить доступ или изменить что-то, что Вы не намеревались.

9
ответ дан 2 December 2019 в 04:03
поделиться

Вам нужен он где угодно, Вы делаете адресную арифметику с указателями, чтобы препятствовать тому, чтобы сборщик "мусора" переместил его на Вас.

7
ответ дан 2 December 2019 в 04:03
поделиться

Поскольку Вы работаете в небезопасном режиме (указатель), фиксированная инструкция выделяют определенное пространство памяти той переменной. Если бы Вы не помещали фиксированную инструкцию, то сборщик "мусора" мог бы переместить в память переменную куда угодно, когда он хочет.

Надеюсь эта справка.

2
ответ дан 2 December 2019 в 04:03
поделиться

MSDN имеет очень похожий пример. Фиксированный оператор в основном сборка "мусора" блоков. В .NET при использовании указателя на ячейку памяти, время выполнения может перераспределить объект к "лучшему" местоположению в любое время. ТАКИМ ОБРАЗОМ, если Вы хотите получить доступ к памяти непосредственно, необходимо зафиксировать ее на месте.

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

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