Переменная в C# instance.SetWindowSize вызывает ошибку "CS1501"

kagorec

Client
Регистрация
24.08.2013
Сообщения
921
Благодарностей
473
Баллы
63
Столкнулся с проблемой задания разрешения экрана в C# используя вставку значения переменной

razreshenieEkrana - переменная заполняется от Spintax
Код:
{1600,900|1280,800|1440,900|1360,768}
Далее втавляем переменную в C# instance.SetWindowSize
Код:
instance.SetWindowSize(project.Variables["razreshenieEkrana"].Value);
При выполнении получаем ошибку, в логе пишется так:
Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "SetWindowSize" не принимает "1" аргументов". [Строка: 2; Столбец: 1;]
http://www.mediafire.com/download/c026cfl0296e33o/SetWindowSize__sample.xmlz Шаблон

Подскажите пожалуйста что надо поправить для корректной работы переменной в C# :bw:

п.с. Похожая тема с нерешенным вопросом "неработающие переменные в снипете" http://zennolab.com/discussion/threads/kompiljacija-koda-oshibka-v-dejstvii-cs1501.19984/
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
раздели полученные цифры по переменным
C#:
int width = int.Parse(project.Variables["width"].Value);
int height = int.Parse(project.Variables["height"].Value);
instance.SetWindowSize(width,height);
ну или так уже с разделением
C#:
string[] size = project.Variables["razreshenieEkrana"].Value.Split(',');
string width = size[0].Trim();
string height = size[1].Trim();
instance.SetWindowSize(int.Parse(width),int.Parse(height));
 
Последнее редактирование:

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
раздели полученные цифры по переменным
C#:
int width = int.Parse(project.Variables["width"].Value);
int height = int.Parse(project.Variables["height"].Value);
instance.SetWindowSize(width,height);
ну или так уже с разделением
C#:
string[] size = project.Variables["razreshenieEkrana"].Value.Split(',');
string width = size[0].Trim();
string height = size[1].Trim();
instance.SetWindowSize(int.Parse(width),int.Parse(height));
Есть ли что-то аналогичное split но чтобы на входе не char было а string? Использую сейчас Macros.TextProcessing.Split, и это кажется очень избыточным.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Есть ли что-то аналогичное split но чтобы на входе не char было а string? Использую сейчас Macros.TextProcessing.Split, и это кажется очень избыточным.
Так тут вроде и так на входе string
вот из char в string
char[] chararray = {'п', 'р', 'и', 'в', 'е', 'т'};
string str = new string(chararray);
или я что то не понимаю ??? так как только познаю кодирование
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Так тут вроде и так на входе string
вот из char в string
char[] chararray = {'п', 'р', 'и', 'в', 'е', 'т'};
string str = new string(chararray);
или я что то не понимаю ??? так как только познаю кодирование
C#:
string[] size = project.Variables["razreshenieEkrana"].Value.Split(',');
В этой строке указывается ',' как разделитель. Я бы хотел в качестве разделителя здесь использовать не символ а строку.
 
  • Спасибо
Реакции: kagorec

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
string[] size = project.Variables["razreshenieEkrana"].Value.Split(',');
В этой строке указывается ',' как разделитель. Я бы хотел в качестве разделителя здесь использовать не символ а строку.
Вот как по слову разделить не знаю, в голову такое пришло, через Replace заменить на какой нить символ и сразу же Split
C#:
string text = "Hello world CSS";
string[] size = text.Replace("world", ":").Split(':');
string s = size[0].Trim();
string s1 = size[1].Trim();
ну или так
Код:
string text = "Hello world CSS";
string[] size = text.Replace("world", ":").Split(':');
return string.Join("", size);
 
Последнее редактирование:
  • Спасибо
Реакции: kagorec и CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Вот как по слову разделить не знаю, в голову такое пришло, через Replace заменить на какой нить символ и сразу же Split
C#:
string text = "Hello world CSS";
string[] size = text.Replace("world", ":").Split(':');
string s = size[0].Trim();
string s1 = size[1].Trim();
Ладно тогда не нужно заморачиваться) Благодарю, для строк использую Macros.TextProcessing.Split, но было интересно возможно что-то есть более короткое для таких случаев
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Ладно тогда не нужно заморачиваться) Благодарю, для строк использую Macros.TextProcessing.Split, но было интересно возможно что-то есть более короткое для таких случаев
ну вроде разделяет))
C#:
string text = project.Variables["directory_path"].Value;
string[] size = text.Replace(" для ", ":").Split(':');
return string.Join("\n", size);
2015-10-25_174734.png
 
  • Спасибо
Реакции: kagorec

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
ну вроде разделяет))
C#:
string text = project.Variables["directory_path"].Value;
string[] size = text.Replace(" для ", ":").Split(':');
return string.Join("\n", size);
Посмотреть вложение 9971
Только оно длинное) Split смотрелось лаконичней и этим притягивало) Пока что использую как и ранее Macros.TextProcessing.Split, если что короче под руку подвернётся - напишите пожалуйста
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Только оно длинное) Split смотрелось лаконичней и этим притягивало) Пока что использую как и ранее Macros.TextProcessing.Split, если что короче под руку подвернётся - напишите пожалуйста
уже три строчки это длинное)))
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Меньше строк и сущностей - лучше код)
C#:
return Macros.TextProcessing.Split("строка+строка_2+строка_3","+","all").ToList()[0];
C#:
return string.Join("\n", project.Variables["text"].Value.Replace(" для ", ":").Split(':'));
 
  • Спасибо
Реакции: kagorec

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
  • Спасибо
Реакции: CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Ваше решение рабочее и я благодарю за него)

Только есть обычные ситуации когда нужно быстро забить гвоздь, и тогда можно взять всё что попалось под руку - камень, микроскоп... А есть ситуации когда специально ищется молоток под конкретные виды задач (например с более короткой ручкой), у меня как раз второй случай, поэтому такие требования к краткости и изящности. Пройдёт время и думаю мне удастся это найти, мне показалось что ваше решение можно слегка переделать и будет то что надо, оказалось что нет
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Ваше решение рабочее и я благодарю за него)

Только есть обычные ситуации когда нужно быстро забить гвоздь, и тогда можно взять всё что попалось под руку - камень, микроскоп... А есть ситуации когда специально ищется молоток под конкретные виды задач (например с более короткой ручкой), у меня как раз второй случай, поэтому такие требования к краткости и изящности. Пройдёт время и думаю мне удастся это найти, мне показалось что ваше решение можно слегка переделать и будет то что надо, оказалось что нет
ну пробуй такое решение, заинтриговал ты меня)))) с этой строкой
C#:
return string.Join("\n", project.Variables["text"].Value.Split(new string[] { " для " }, StringSplitOptions.None));
 
  • Спасибо
Реакции: CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
ну пробуй такое решение, заинтриговал ты меня)))) с этой строкой
C#:
return string.Join("\n", project.Variables["text"].Value.Split(new string[] { " для " }, StringSplitOptions.None));
Прекрасно!

14068360260.jpg

Я немного укоротил ваш код, получилось вот так:
C#:
return string.Join("\r\n", "1_2_3_4_5".Split(new string[] { "_" },0));
Осталось выкинуть 0, и будет совсем идеально, но не хочет он что-то выкидываться

Возьмётесь? :do:
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
а какой текст разделяем ???
если то что предложен в коде то мы мудрили много, это можно так
Код:
return string.Join("\r\n", "1_2_3_4_5".Split('_'));
 
  • Спасибо
Реакции: CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
а какой текст разделяем ???
если то что предложен в коде то мы мудрили много, это можно так
Код:
return string.Join("\r\n", "1_2_3_4_5".Split('_'));
Вы сделали снова разделитель char, но нужно string чтобы вот так сработало:
C#:
return string.Join("\r\n", "1wow2wow3wow4wow5".Split('wow'));
PS: вот этот вариант который вы ранее выложили (немного поправил для удобства тестирования)
C#:
return string.Join("\r\n", "1wow2wow3wow4wow5".Split(new string[] { "wow" },0));
Он меня на 100% устраивает, 0 как я понял там:
MSDN сказал(а):
count
Тип: System.Int32
Максимальное число возвращаемых подстрок.
Поэтому решение оказалось идеальным) 0 оттуда уже не убрать, гвоздями прибит)

Благодарю!)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Поэтому решение оказалось идеальным) 0 оттуда уже не убрать, гвоздями прибит)
Благодарю!)
Я так правильно понимаю что запятая с нулём нагнетают и код длинный из за них ?? ))))
 
  • Спасибо
Реакции: CSS

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)