0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 9
1
.NET 3.x

Ошибка "error CS1503". Преобразование из string в T

21.05.2014, 22:36. Показов 7669. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Собственно, сабж. Вылезает ошибка error CS1503 в 7 строчке:
C#
1
2
3
4
5
6
7
8
9
10
11
12
BinList = new MyStream<T>(BinListFileName, FileMode.Create);
Form4<T> list = (Form4<T>)(this.ActiveMdiChild);
T yo;
if (yo is string) {
   Form5 addString = new Form5();
   if (addString.ShowDialog() == DialogResult.OK)
       BinList.insertElem(addString.Data);
   }
 
public class MyStream<T> : Stream
   public void insertElem(T s)
{}
До этого все выполнялось, и string, который возвращает addString.Data, спокойно преобразовывался в T, пока я не заставил формы работать с неопределенными типами. Либо как-то не так заставил
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2014, 22:36
Ответы с готовыми решениями:

Ошибка CS1503 Аргумент 1: не удается преобразовать из "string" в "char"
Ошибку как исправить? Вот такие ошибки: Ошибка CS1503 Аргумент 1: не удается преобразовать из...

Ошибка: Compiler Error CS1503: не удается преобразовать из "System.Drawing.RectangleF" в "System.Drawing.Rectangle
Появилась эта ошибка: Compiler Error CS1503 (Аргумент 1: не удается преобразовать из...

Ошибка "Fatal error: Uncaught Error: Cannot use string offset as an array" при импорте данных
как исправить данные ошибки при импорте данных? Warning: Illegal string offset...

Ошибка CS1503 Ошибка CS1503
Ошибка CS1503 Аргумент 1: не удается преобразовать из &quot;UnityEngine.Ray&quot; в &quot;UnityEngine.Vector3&quot;. ...

11
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.05.2014, 00:10 2
nicknight, потому что компилятор не умеет преобразовывать произвольный тип в строку?..
C#
1
BinList.insertElem(addString.Data.ToString());
костыль, но будет работать.
0
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 9
22.05.2014, 07:41  [ТС] 3
Psilon, так мне нужно наоборот -- string в произвольный тип. Не работает костыль.
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
22.05.2014, 08:29 4
Так что есть Т то у вас когда вы ошибку получаете?
0
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 9
22.05.2014, 09:24  [ТС] 5
Cupko,
В данном случае, string. Но проверка же еще в
C#
1
if (yo is string)
проходит.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.05.2014, 10:54 6
nicknight, ну тогда делай так:
C#
1
2
3
4
5
6
7
8
9
10
BinList = new MyStream<string>(BinListFileName, FileMode.Create);
Form4<string> list = (Form4<string>)(this.ActiveMdiChild);
 
   Form5 addString = new Form5();
   if (addString.ShowDialog() == DialogResult.OK)
       BinList.insertElem(addString.Data);
 
public class MyStream<T> : Stream
   public void insertElem(T s)
{}
т.к. на запись if (yo is string) компилятору вообще плевать.
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
22.05.2014, 11:00 7
Я не понимаю ничего...
C#
1
2
T yo;
if (yo is string)
yo - пустая ссылка, yo is string что возвратит? это вообще компилиться будет?
0
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 9
22.05.2014, 11:26  [ТС] 8
Psilon, так и было до этого. Но я хочу чтобы не только со стрингами работало.

Добавлено через 2 минуты
Cupko, не важно, что она пустая, у нее тип -- Т, а yo is string, как я понимаю, проверит на соответствие типу.
is (Справочник по C#)
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.05.2014, 11:52 9
Цитата Сообщение от nicknight Посмотреть сообщение
C#
1
BinList.insertElem(addString.Data);
Я так понимаю, addString.Data — это строка.
В этом случае компилятор вполне резонно предполагает, что вы где-нибудь в коде можете создать MyStream<int>, а потом попытаться передать туда string.
На что и ругается.
0
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 9
23.05.2014, 10:33  [ТС] 10
Видимо, придется как-то по-другому кумекать. Буду разбираться с преподом. Всем спасибо!
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
23.05.2014, 12:53 11
А если Т стрингой ограничить?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.05.2014, 15:43 12
Cupko, то смысл в нем?..
0
23.05.2014, 15:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2014, 15:43
Помогаю со студенческими работами здесь

Ошибка CS1503
Не удается преобразовать из &quot;System.Collections.Generic.IEnumerable&lt;string&gt;&quot; в...

Ошибка CS1503
Есть метод: internal void DrawAlternative&lt;TDrawObject, TFillObject,...

Ошибка CS1513 и CS1503
Добрый вечер, не могу понять как исправить данные ошибки: CS1513 Требуется } (Перед else) CS1503...

Ошибка: преобразование char в string невозможно
Задача такова, написать прогу на WinForm чтобы: Надрукувати слова, які складаються з перших та...

error CS1503: Argument 2: cannot convert from 'UnityEngine.Vector2' to 'UnityEngine.Transform
Я хочу сделать так чтобы создавалась копия объекта. Это у меня получается, но не получается создать...

Ошибка CS1503 при записи в реестр
Ребята, здравствуйте, мне в реестр нужно записывать путь к определенному файлу. Но он выдает ошибку...

Пример Save The Humans / ошибка CS1503
Добрый вечер! Сейчас прохожу пример из книжки Эндрю Стиллмена &quot;Head First. C#&quot; издательства...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru