ох! аккуратный вопрос.
Matlab для цикла берет матрицу в качестве входа и выполняет итерации по его столбцам. Matlab также обрабатывает практически все значением (никакая передача ссылкой), таким образом, я ожидал бы, что это берет снимок входа для цикла, таким образом, это неизменно.
вот пример, который может помочь проиллюстрировать:
>> A = zeros(4); A(:) = 1:16
A =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
>> i = 1; for col = A; disp(col'); A(:,i) = i; i = i + 1; end;
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> A
A =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Оказывается, вы можете переопределить имя файла ресурса для загрузки, унаследовав от ComponentResourceManager
следующим образом:
using System;
using System.ComponentModel;
internal class CustomComponentResourceManager : ComponentResourceManager
{
public CustomComponentResourceManager(Type type, string resourceName)
: base(type)
{
this.BaseNameField = resourceName;
}
}
Теперь я могу убедиться, что диспетчер ресурсов загружает MyControl .resources
вот так:
System.ComponentModel.ComponentResourceManager resources =
new CustomComponentResourceManager(typeof(MyControl<>), "MyControl");
Кажется, это работает.
edit : указанная выше строка перезаписывается, если вы используете конструктор, потому что она находится в область сгенерированного кода. Я избегаю дизайнеров и использую инструменты контроля версий, чтобы отменить любые нежелательные изменения, но решение не идеальное.
На моем Visual Studio 2008 у меня есть эта ошибка:
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager (typeof (MyControl));
Использование универсального типа 'WindowsFormsApplication1.UserControl1' требует аргументов типа '1'.
Обратите внимание, что в моем случае код был сгенерирован без круглых скобок, <>
, после имени класса.
Это становится интересным, см. ImageList автоматически генерирует некомпилируемый код в Generic User Control .
Что они сказали:
Отправлено Microsoft 6.07.2005 в 14:49
Это интересная ошибка. Вы натолкнулись на общий сценарий, который мы не поддерживаем в конструкторе Windows Forms. Мы не сможем добавить поддержку этого в Whidbey (примечание: Visual Studio 2008?) Релиз. Мы рассмотрим это в следующей версии. В качестве обходного пути вы можете использовать конструктор для создания не универсального UserControl с общедоступным свойством Type, а затем создать универсальный класс, который наследуется от него и передает T в свойство Type базовых классов.
Я полагаю, что этот элемент управления не может быть разработан в конструкторе форм Visual Studio тоже.