Тег: C#

KostyeFromHelen
17. Отправить письмо на C#
28.12.2011 09:26:58

Напишем программку, которая будет отправлять письмо на почтовый ящик. Для этого нам понадобится следующая ссылка на сборку: using System.Net.Mail; И для того, чтобы можно было использовать потоки: using System.Threading;

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

string mailBody = string.Format("Здравсвуйте {0}, вы добавили статью на сайт Земля для тебя! За что мы вас благодарим. Если ваша статья проходит по требованиям, то вскором времени вы сможете увидеть её на нашем сайте. Спасибо!", author); // это текст письма. Ничего необычного. Переменная author = TextBox1.Text;

String smtpHost = "SMTP.mail.RU"; //Адрес SMTP-сервера. Я использовал smtp сервер mail.ru

int smtpPort = 25; //Порт SMTP-сервера. Стандартный для mail.ru

String smtpUserName = "****@mail.ru"; //Логин. Моя ящик, от лица которого будет приходить письмо.

String smtpUserPass = "*******"; //Пароль к моему ящику.

SmtpClient client = new SmtpClient(smtpHost, smtpPort);//Создание подключения

client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Дословно - удостоверение личности. Мол подходит ли пароль к ящику и так далее.

String msgFrom = "*****@mail.ru"; //Адрес для поля "От"

String msgTo = email; //Адрес для поля "Кому" (адрес получателя). Переменная email, это тоже textbox, где написал ящик автора.

String msgSubject = "Спасибо за статью!"; //Тема письма

String msgBody = mailBody; //Текст письма, который писали выше(для удобства)

MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); //Создание сообщения автору.

MailMessage message2 = new MailMessage(msgFrom, msgFrom, "Добавлена статья", "На earth4you.ru добавлена статья"); //Создание сообщение самому себе, чтобы узнать, что кто-то добавил статью.

try

{

//Отсылаем сообщение, если всё удачно.

client.Send(message);

Thread.Sleep(1000); // Между сообщениями ждём 1 секунду

client.Send(message2);

}

catch

{

Label2.Text = "Письмо не отправлено."; //Если по каким-то причинам произошёл сбой.

}

 

 

Вот и всё, ничего сложного. Куда сложнее отправлять письма напрямую через прокси :)

 



Теги: письмо на C# | C# | smtpmail

Просмотров: 5971 | Подробнее...


 
KostyeFromHelen
11. Открыть\закрыть CD-ROM на C#.
14.02.2011 13:20:54

Управление дисководом дело не хитрое.

Только стоит немного разобраться, что тут да как.

[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)] //подключаем библиотеку, которая позволяет управлять CD-ROM'om. Функция mciSendStringA позволяет отправлять мудьтимидийным устройствам сообщения.
protected static extern int mciSendString (string mciCommand, StringBuilder returnValue, int returnLength, IntPtr callback); //создаём экземпляр класса

static void Main(string[] args)
{

int result = mciSendString("set cdaudio door open", null, 0, IntPtr.Zero); //шлём команду открыться
result = mciSendString("set cdaudio door closed", null, 0, IntPtr.Zero);// ну а здесь - закрыться. 

 

Вы наверно подумаете, как это можно знать, как это учить. Скажу вам, что это просто надо понимать. И в нужный момент иметь на вооружение.



Теги: закрыть CD-ROM | открыть CD-ROM | C#

Просмотров: 5606 | Подробнее...


 
KostyeFromHelen
6. Решение квадратного уравнения на C#, убираем ошибки.
05.10.2010 16:17:39

Честно говоря, когда я нашёл время поискать ошибки, которые могут возникать в программе, мне так хотелось спать, что я нашёл только 2 или 3 из них. Смотрим улучшенный код программы по решению квадратного уравнения:

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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите первый коэффициент");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй коэффициент");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите третий коэффициент");
int c = Convert.ToInt32(Console.ReadLine());
if (a == 0) Ошибка 1
{
Console.WriteLine("Уравнение не является квадратным:{0}*x+{1}=0", b,c );
if (b == 0) Ошибка 2
{
Console.WriteLine("Извините товарищ, но это уже не уравнение!");
}
else
{
double x = 0;
x = -c / b;
Console.WriteLine("x={0}", x);
}
}
else
{
double d;
d = b * b - 4 * a * c;

if (d < 0)
{
Console.WriteLine("Дискриминант отрицательный, корней нет");

}
if (d == 0)
{
double x1 = b / (2 * a);
Console.WriteLine("Дискриминант = 0, x = {0}", x1);

}
if (d > 0)
{
double x1 = (-b + Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
Console.WriteLine("Дискриминант = {0}, x1 = {1}, x2 ={2}", d, x1, x2);
}
}
}
}
}

 

В первом случае если коэффициент а равен 0, то  в данной строчке  double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a); мы делим на 0, что недопустимо. По-этому мы  и вставляем код проверки, после которого либо выполняем код дальше, либо решаем уравнение другим, простым методом.

Ошибка 2 возникает если коэффициент а равен 0 и b равен 0. Тогда получается даже не уравнение, что мы и сообщаем пользователю.

Так же есть ошибка, если мы вместо цифр вобьём буквы в переменные a, b и c. Но такую ошибку надо отлавливать с помощью инструкции try-catch, её рассмотрим в следующем уроке.



Теги: C# | реализация квадратного уравнения на | решение квадратного уравнения | .

Комментариев 5 | Просмотров: 27315 | Подробнее...


 
KostyeFromHelen
3. Типы данных в C#
20.06.2010 13:44:32

Перечислим все типы данных в C# и как они объявляются:

byte a; может быть целым числом от 0 до 255

int b; int32(От -2 147 483 648 до 2 147 483 647)

short c;
int16(От -32 768 до 32 767)

long d; int64(От -922 337 203 685 477 508 до 922 337 203 685 477 507)

float e; Число одинарной точности с плавающей запятой(От -3,402 823e38 до 3,402 823e38)

double f; Число двойной точности с плавающей запятой(От -1,797 693 134 862 32e308 до 1,797 693 134 862 32e308)

char g; Знак юникода

bool h; Логический тип, принимающий значения true или false

string i; Текст. Даже если вы положите в переменную типа String число 5, оно будет являться строкой, а не числом.

decimal j; Тип данных decimal может хранить не более 38 разрядов, все из которых могут бытьсправа от десятичного разделителя. Тип данных decimal хранит точное представление числа. Нет понятия приближенности для хранимого значения.

object v;
Базовый тип для всех остальных типов

b = 5; Присвоение значение. Когда мы объявляем переменную, мы можем сразу задать ей значение: int b = 5;

Если переменная не была объявлена, то и присвоить ей ничего нельзя.

Что бы проверить правда ли переменной b пресвоилось значение, можно её вывести на экран:

Console.WriteLine(b);

i = "Привет!)";

Чтобы вывести две переменных сразу, нам надо показать, где именно мы хотим, чтоб они вывелись. Делается это с помощью специального обозначение - {0}, {1}, {2} и так далее.

Console.WriteLine("{0}, {1}", b, i);

 

Добавлю, что так же есть типы uint, ulong, sbyte.

Те, которые начанаюся на u отбрасываются отрицательные значения и на столько же увеличивается положительный придел.

У sbyte наоборот, появляются отрицательные значение, заместо половины положительных.

Вот и всё:)



Теги: Типы данных в C# | C# | размеры данных в C#

Просмотров: 15582 | Подробнее...


 
KostyeFromHelen
2. Пишем первую программу, печатающую Hello World
18.06.2010 16:34:21

Открываем C#, создаём консольное приложение и видим:

 

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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{


}
}
}


Первые строчки Using - это сборки. Первые 4 вставляются автоматически, их удалять не стоит. Но в некоторых случаях надо будет добавлять и другие.

namespace - это пространство имён в котором мы работаем. К примеру если Дима работает в Санкт-Петербурге, но ещё один Дима работает в Москве, мы не можем сказать, что это один и тот же Дима, так как пространство имён у них разное. Подробнее можете почитать на википедии или других сайтах.

Класс - это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. К примеру если описывать человека, то можно выделить фамилию, имя, возраст и прочие свойства. А можно всё это объединить в один класс, так будет намного удобнее.

Static void Main - это метод, но что выделяет этот метод, это то, что он является входной точкой для всех приложений написанных на C#. В любой программе должен быть метод Main.

Так как же нам напечатать Hello World. Всё очень просто.
За это отвечает метод Console.WriteLine("Hello World"), который печатает на новой строчке. Или просто Console.Write("Hello World"), который будет печатать всё на одной строчке
В итоге код получится таким:

 

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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}

 



Теги: напечатать слово в C# | class Main C# | Hello World | C# | пространство имён в C#

Просмотров: 4697 | Подробнее...


 
KostyeFromHelen
1. Вступление.
18.06.2010 09:35:48

C#  — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET.

Чтобы программировать на C# надо скачать Visual C# 2008 Express Edition с официального сайта Майкрософта, хотя уже есть 2010 версия, но у меня стоит 2008, это пока не принципиально.

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



Теги: C# | немного о C Sharp

Просмотров: 3470 | Подробнее...


 

Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.