Я новичок C# студент, когда я изучал чтение кода, у меня возникла проблема с этим кодом
public class Solution {
public int solution(int[] priorities, int location)
{
int answer = 0;
Queue<KeyValuePair<int, int>> que = new Queue<KeyValuePair<int, int>>();
for(int i = 0; i < priorities.Length; i++)
{
que.Enqueue(new KeyValuePair<int, int>(i, priorities[i]));
}
}
Насколько я знаю, оператор new
работает для создания экземпляра в объекте ссылочного типа, например этот код:
Queue<KeyValuePair<int, int>> que = new Queue<KeyValuePair<int, int>>();
(так что que
создается в стеке, а new
выделяет память в куче <- я научился так) </p>
но:
que.Enqueue(new KeyValuePair<int, int>(i, priorities[i]))
В этом коде new
действует без переменных.
(Ps. Я обнаружил, что KeyValuePair <> - это тип структуры. Интересно, почему тип значения использует "новый" ... мы не используйте "новый" в типе значения, например int a= new 3
)
Я хочу знать, что происходит
, пожалуйста, научите меня
спасибо