Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Другое > Информационные технологии > Программирование > С++/C#
Присоединяйся к нам



Ответ
 
Опции темы Опции просмотра
Старый 14.03.2011, 19:15   #1
Lost


 
Аватар для N.e.o.
 
Регистрация: 20.08.2009
Адрес: Matrix
Сообщений: 1,028
Репутация: 802
Автор Сообщение

[C# урок] Передача параметров в метод


Передача параметров в метод

Здравствуйте уважаемые читатели. Хотел о чем то написать, но не знал о чем именно. И буквально вчера вспомнил одну, а точнее несколько интересных вещей.
Речь пойдет о передачи параметров в ф-ции. Параметры могут передаваться либо по значению либо по ссылке . Когда переменная передается по ссылке вызываемый метод получает саму переменную, поэтому любые изменения, которым она подвергается внутри Метода, остаются и в силе после его завершения, а когда переменная передается по значению, метод получает копию этой переменной, а это значит что все изменения которые будут сделание внутри метода там и останутся.
Например int передается в метод по значению, и любые изменения, которые сделает метод не повлияют на значение исходного об’єкта. Но например если в метод передать массив или любой другой ссилочний тип (например класс) то изменения сделание внутри метода будут отражены и в исходном об’єкте.
Давайте рассмотрим следующий пример:

Код:
using System;
namespace Parameters
{
class Program { static void Function(int[] iArr, int iNumber) { iArr[0] = 100; iNumber = 200; } static void Main(string[] args) { int[] arr = new int[2] { 1, 2 }; int number = 3; Console.WriteLine("Before Arr[0] = {0} , number = {1} ", arr[0], number); Function(arr, number); Console.WriteLine("After Arr[0] = {0} , number = {1} ", arr[0], number); Console.ReadKey(); } }
}
Результатом работы этой программы будет:
Цитата:
Before Arr[0] = 1 , number = 3
After Arr[0] = 100 , number = 3
Обратите внимание что значение number каким было таким и осталось, а первый элемент нашего массива изменился.

Всем спасибо за внимание. [Ссылки скрыты от гостей.]
__________________

[Ссылки скрыты от гостей.]
[Ссылки скрыты от гостей.]
По женским представлениям, под покровом темноты мужчины могут думать только о сексе. Это неправда. Днем они тоже о нем думают.*face2*
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
R1k1maru (15.03.2011)
Старый 08.02.2014, 02:29   #2
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

Давай я тебе помогу с уроками по С#

Добавлено через 40 секунд
Начнем с самого простого а закончим хорошей прогой

Добавлено через 1 минуту
Например так . Передача по ссылке на С#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Передача_по_ссылке2
{
class Program
{
class Test
{
static void function1(ref int a)
{
a = 12;

}
static void function2(out int b)
{
b = 33;
}
static void Main(string[] args)
{
int z = 0;
function1(ref z);
Console.WriteLine(z);
int r;
function2(out r);
Console.WriteLine(r);
Console.ReadLine();
}
}
}
}

Последний раз редактировалось Snouden; 08.02.2014 в 02:30. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 09.02.2014, 03:28   #3
O kitty




 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

Цитата:
Сообщение от Snouden Посмотреть сообщение
Можно например по массивам на С# Например одномерный массив, двух мерный массив, массивы с параметрами, массивы массивов так называемые jagget
ну так организуй тут курс статей :) Напиши кучу всякого.
Буду рад почитать сам , т.к я плохой и ужасный программист (без знания азов).
__________________
Бульбазавр спешит на помощь ^.^
  Ответить с цитированием Наверх
Старый 09.02.2014, 03:30   #4
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

Начну наверное с массивов на С#

Добавлено через 1 минуту
Ну ты не скромничай, судя по твоей репутации ты тут гуру

Последний раз редактировалось Snouden; 09.02.2014 в 03:31. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 14.02.2014, 00:56   #5
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

Ну ладно поехали. Урок 1. Массивы на С#
Давайте начнем с того что такое массив. Если брать определение то , массив это набор однотипных данных символов чисел слов, имеющий имя и последовательную нумерацию его элементов. Из этого следует что, у массива есть имя которое дает ему программист ну например mass, у массива есть тип например int string shar. Ну типы я описывать не буду сами знаете. Так же у массива есть размер это количество составляющих его элементов.

Так вот , мы начнем с одномерных массивов в С#

И так.
объявляем тип массива int[] mass = new int[4] { 23, 45, 56, 4 };// числа могут быть произвольными но не более 4.
foreach (int i in mass)
Console.WriteLine(i);
{
Console.ReadLine(); // Это строка вывод на консоль
}

Вот эта строка переводится так foreach (int i in mass)
foreach для каждого числа i входящего в состав массива выполняются действие заключённые в скобках.


Да число в квадратной скобки может быть любым, например [10], но тогда и в фигурных скобках должно быть десять элементов не больше и не меньше.Пример [10]{12,34,5,3,12,5,6,2,1,3}; и обязательно должна стоять точка с запятой в конце объявления.


Сообщение было скопировано в отдельную тему - [Ссылки скрыты от гостей.]
/h4ckeR

Последний раз редактировалось h4ckeR; 14.02.2014 в 10:26.
  Ответить с цитированием Наверх
Старый 14.02.2014, 01:28   #6
O kitty




 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

Цитата:
Сообщение от Snouden Посмотреть сообщение
Ну ладно поехали. Урок 1. Массивы на С#
Давайте начнем с того что такое массив. Если брать определение то , массив это набор однотипных данных символов чисел слов, имеющий имя и последовательную нумерацию его элементов. Из этого следует что, у массива есть имя которое дает ему программист ну например mass, у массива есть тип например int string shar. Ну типы я описывать не буду сами знаете. Так же у массива есть размер это количество составляющих его элементов.

Так вот , мы начнем с одномерных массивов в С#

И так.
объявляем тип массива int[] mass = new int[4] { 23, 45, 56, 4 };// числа могут быть произвольными но не более 4.
foreach (int i in mass)
Console.WriteLine(i);
{
Console.ReadLine(); // Это строка вывод на консоль
}

Вот эта строка переводится так foreach (int i in mass)
foreach для каждого числа i входящего в состав массива выполняются действие заключённые в скобках.


Да число в квадратной скобки может быть любым, например [10], но тогда и в фигурных скобках должно быть десять элементов не больше и не меньше.Пример [10]{12,34,5,3,12,5,6,2,1,3}; и обязательно должна стоять точка с запятой в конце объявления.


1. Я требую перевести всё это дело в отдельные темы (без согласия твоя пост в тему превращать не буду)
2. Динамический массивы / Освобождение памяти - вот что интересно молодёжи :)
__________________
Бульбазавр спешит на помощь ^.^
  Ответить с цитированием Наверх
Старый 14.02.2014, 02:29   #7
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

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

Добавлено через 1 минуту
Я тогда создам тему Например массивы на С# Ты как не против?

Добавлено через 18 минут
Да а про динамические массивы это по позже
но специально для тебя я напишу

int size = 20 - 12;
int[] имя массива = new int[size];
foreach(int i in size)
}
console.writleline(i);
{
console.readline();

Это динамический массив. Просто я хотел все по порядку да с объяснениями.
}

Последний раз редактировалось Snouden; 14.02.2014 в 02:48. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 14.02.2014, 03:21   #8
O kitty




 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

Да делай новые темы, я не против, только побольше в них расписывай и вставляй в тег CODE

И то что ты показал не совсем то что я имел ввиду под динам.массивом.
__________________
Бульбазавр спешит на помощь ^.^
  Ответить с цитированием Наверх
Старый 18.02.2014, 03:02   #9
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

А что ты имел ввиду под динамическим массивом. Сможешь показать мне?

Добавлено через 1 минуту
Просто есть разные варианты объявление массивов как одномерных так и двух мерных я чуть по позже напишу.

Добавлено через 1 минуту
Если у тебя есть что предложить то напиши я посмотрю твой вариант.

Последний раз редактировалось Snouden; 18.02.2014 в 03:04. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 24.02.2014, 02:43   #10
Новичок
 
Аватар для Snouden
 
Регистрация: 08.02.2014
Сообщений: 8
Репутация: 7
По умолчанию

Вот тут я подумал а дайка я напишу программку под названием. Вычисление дискриминанта на С++"
Как вам такая идейка ?.

#include<iostream>
#include<clocale>
using namespace std;
int main()
{
float a, b, c;
float D;
float x1, x2;
setlocale(LC_ALL, "Russian");
cout<<"Программа вычисление дискриминанта на С++";
cin>>a>>b>>c;
D = b * b - 4 * a * c;
if (D < 0)
{
cout<<"D < 0 Корней нет";
}
else
{
x1 = (-b - sqrt(D)) / (2 * a);
x2 = (-b + sqrt(D)) / (2 * a);

cout<<"Корень D="<<D<<endl;
cout<<"x1= " <<x1<<endl;
cout<<"x2= "<<x2<<endl;
}
cin.get();
cin.get();

}



Добавлено через 1 минуту
Красота. Если кому надо помочь с уроками то пишите на мыло [Ссылки скрыты от гостей.]

Последний раз редактировалось Snouden; 24.02.2014 в 02:44. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Старый 24.02.2014, 03:33   #11
O kitty




 
Аватар для Der_SySLIK
 
Регистрация: 12.09.2010
Сообщений: 354
Репутация: 521
Отправить сообщение для Der_SySLIK с помощью Skype™
По умолчанию

1. Мы же уже одобрили что ты будешь новые статьи выкладывать в новых темах?
Даже для мелкого урока.
2. С чего вдруг с C# на C++ перешел?
__________________
Бульбазавр спешит на помощь ^.^
  Ответить с цитированием Наверх
Старый 24.02.2014, 21:47   #12
Освоившийся

 
Аватар для DeaTHSeeKeR
 
Регистрация: 27.05.2009
Сообщений: 338
Репутация: 365
Отправить сообщение для DeaTHSeeKeR с помощью ICQ Отправить сообщение для DeaTHSeeKeR с помощью Skype™
По умолчанию

Цитата:
Сообщение от Der_SySLIK Посмотреть сообщение
1. Мы же уже одобрили что ты будешь новые статьи выкладывать в новых темах?
Даже для мелкого урока.
2. С чего вдруг с C# на C++ перешел?
Да я уже писал , что он ничего не знает... Удалил мой коммент.
__________________
//Zhyk: изображении подписи удалено, т.к превышает новые лимиты по размерам.
  Ответить с цитированием Наверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Powered by vBulletin
Copyright © 2016 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 09:44. Часовой пояс GMT +4.