2013-09-19 5 views
2

Я новичок в мире программирования и беру класс C#, и я борюсь с основами. Я нахожу, что, когда основы определяются один за другим, я (чувствую себя) понимаю их просто отлично.
Однако, когда я вижу заявление, я действительно пытаюсь понять, как они работают вместе. // Мы используем "Murach's C# 2012" для справки.C# борется с основами

Например, когда я вижу код ниже, у меня возникают проблемы с определением типа, метода, переменных, аргументов и параметров. Я надеялся, что у кого-то могут быть некоторые подсказки или трюки, которые помогают/помогают им.

string subtotal = Convert.ToDecimal(txtSubtotal.Text); 

Строка - это метод или объект? subtotal - это переменная, которая преобразует значение "txtSubtotal.Text" в текстовое поле.

Возможно, ответ заключается в том, чтобы просто потратить больше времени и работы на большее количество проектов, но это не может помешать спросить.
Также хотелось добавить, что это онлайн-класс, и профессору очень не хватает ответов, давая примеры или дополнительные объяснения. Я так ему сказал, и я в значительной степени получил ответ «Извини». Спасибо! Shaun

+3

Почему ваша переменная является строковым типом при преобразовании в десятичный знак? – OneFineDay

+0

Никто не может научить вас программированию, его только вы, который, практикуя, могут научиться этому, а затем овладеть им. Начните с очень простых понятий, таких как примитивный тип данных, линейная/нелинейная структура данных и т. Д. И измените своего учителя. – TalentTuner

+3

Никто не может научить вас программированию?!?! WTF? как он меняет учителей, если никто не может научить его? – paqogomez

ответ

1

string является типом, и вы пытаетесь преобразовать текстовое поле текст Decimal типа и установить его тип строки

, если вам нужен десятичный объект, созданный из входного текста измените тип как десятичная. как ниже

decimal subtotal = Convert.ToDecimal(txtSubtotal.Text); 
1
  • string тип.
  • subtotal является переменной.
  • Convert.ToDecimal() - это метод.
  • txtSubtotal - это текстовое поле управления.
  • .Text является собственностью текстового блока управления типа string.

Ваш пример сбивает с толку, так как результат Convert.ToDecimal() является decimal, но переменная набирается как string. Либо тип вашей переменной ошибочен, либо вы без необходимости выполняете преобразование из типа string (.Text) в decimal.

0

Вы не можете использовать метод LHS (слева) оператора присваивания. Учитывая это, вы можете быть уверены, что строка не является методом.

Что касается других вещей, то переменные, которые вы указываете при вызове метода, называются параметрами и переменными, указанными в определении метода, называются аргументами.

+1

Я сомневаюсь, что OP знает, что означает LHS, я поместил значение в редактирование, но вы переписали это редактирование. :-( –

+0

Нет, это был не я, наверное, по ошибке! –

0

строка является тип вашей субтотальной переменной

Преобразовать является класс

txtSubtotal это имя элемента управления TextBox и это текст, содержащийся в нем (который имеет тип строки)

ToDecimal - это метод класса Convert, который позволяет конвертировать txtSubtotal.Text в десятичный тип

К сожалению, этот код не скомпилируется, поскольку C# будет ожидать, что тип промежуточного итога будет иметь тип decimal

0

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

Я предлагаю получить пробную учетную запись pluralsight и наблюдать за тем, как много новичка, где вы можете втиснуться в свое доступное время. я думаю, что это лучший ресурс для обучения .net и C# и программного обеспечения там.

Это мой ответ на реальное мясо вашего вопроса.

насколько ваша строка кода кода - это не скомпилируется. вы выполняете назначение результата выражения, которое возвращает тип decimal в переменную типа string. C# этого не допустит.

string subTotal - это объявление переменной строки типа. = Convert. (...) - это назначение возвращаемого значения (статической) функции для указанной переменной.

0

Microsoft's network - хорошее место, чтобы начать поиск основ.

Предлагаю вам взглянуть на вещи в этой перспективе: что такое вход? Каков выход?

В примере, который вы опубликовали, Convert.ToDecimal() - это метод класса Convert, который требует ввода строки (параметра). String - это номер DataType, который может содержать альфа-цифры, специальные символы (кроме символов эвакуации) и т. Д. TextBox txtСопутственный текст преобразуется в DecimalDataType, который присваивается переменной String под названием subtotal.

Прежде всего, у них много терпения.

+0

Нет никакого неявного преобразования из 'decimal' в' string'. C# не так разрешительна, как VB :) –

+0

@retailcoder: изменен мой ответ :) – Abhishek

2

string subtotal = Convert.ToDecimal(txtSubtotal.Text);

Это выражение назначение не компилируется. Давайте сломаем его.

  • string subtotalмы объявляя переменную здесь. Название subtotal, тип string.

  • = в этом случае присвоение вместе с декларацией: в одной команде мы собираемся объявить переменную и назначить его - в конце его (;) переменная subtotal примет значение того, что находится справа от оператора присваивания (=).

  • Convert.ToDecimal() - метод. A static метод, по сути. Вы можете сказать, потому что вы вызываете этот метод по типу Convert, не имея экземпляра этого типа (т. Е. Вам не нужно делать new Convert()). Метод принимает значение некоторого типа (допускается одной из его перегрузок) и преобразует его в значение decimal. Поскольку левый операнд задания - это string, и мы не конвертируем наш decimal в string здесь, присваивание не сможет скомпилировать. Мы можем добавить .ToString() в конец, чтобы преобразовать decimal обратно в string, и назначение будет работать.

    ToString() необходим, чтобы заставить его работать, потому что нет неявного преобразования определяется между decimal и string.

  • txtSubtotal является объектом , вероятно, экземпляр из TextBox класса. Если это так, этот объект происходит отControl и способен визуализироваться на Form.

  • .Text является свойством из TextBox объекта, представляющее его string отображаемого значения.

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