2015-07-15 4 views
2

Использование VB dot net & Visual Studio 2010, у меня есть строка, и я хочу захватить два самых разных символа. Поэтому я иду на функцию Right(), которая будет делать точно что. Но в проекте, где я работаю, что не признается, поэтому я послушно вставить в верхней части формыПраво (S, 2) vs Strings.Right (S, 2)

Imports Microsoft.VisualBasic 

Но это еще не вполне достаточно ... Я должен использовать Strings.Right(S,2) в чтобы избежать ошибки. Я знаю, что у меня есть другие проекты, которые работают только с использованием Right() без Strings. спереди, но я не уверен, какие настройки отличаются от тех, которые позволяют избежать необходимости в дополнительном квалификаторе.

Что можно изменить, чтобы Right(S,2) работал в этом проекте?

EDIT: ошибка, что я получал без Strings. классификатором является

«Public ReadOnly Право собственности, как Integer» не имеет параметров и его тип возвращаемого значения не могут быть проиндексированы.

Intellisense для «Right», как я начинаю набирать его, говорит:

Получает расстояние в пикселях между правым краем элемента управления и левого края клиентской области его контейнера

- что явно не связано с манипуляциями с строкой.

+2

Какое сообщение об ошибке? –

+2

[docs] (https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.right%28v=vs.100%29.aspx) говорят: «Если используется в Windows Form, или любой другой класс, обладающий свойством Right, вы должны полностью квалифицировать функцию с помощью Microsoft.VisualBasic.Strings.Right. " Это может быть проблема? – Mark

+0

Если вы указали текст ошибки в своем вопросе, я бы с радостью проголосовал за ваш вопрос, потому что это хороший вопрос, который, вероятно, будет полезен другим людям. Но поскольку вы не говорите, что такое на самом деле, я не могу с такой доброй совестью. –

ответ

4

Функция Right определена в Microsoft.VisualBasic.Strings. Возможно, вы получаете эту ошибку в классе Form в проекте Windows Forms, и когда вы просто вводите Right(S,2), компилятор считает, что вы вызываете свойство Right класса Form. Я считаю, что ваш выбор состоит в том, чтобы переместить код где-то вне класса Form или присвоить ему вызов с помощью Strings.Right.

Просто импортировать Microsoft.VisualBasic.Strings в ваш класс формы не поможет, поскольку ссылка на Right по-прежнему будет неоднозначной.

+1

Это имеет смысл - другие места, которые я использую Right() сами по себе, находятся в модулях, а не внутри класса From. Но этот проект находится внутри формы, так что это именно то, что происходит. Спасибо за вашу помощь! –

Смежные вопросы