Upload
miladin-medic
View
242
Download
2
Embed Size (px)
DESCRIPTION
Osnovi programskog jezika C#
Citation preview
O C#
Jezik C# je deo programske arhitekture formirane oko mreyno distribuirane platforme, .NET Framework. :NET omogucava da se programi izvrsavaju pod razlicitim okruzrnjem. Dve osnovne karakteristike
-CLR
-biblioteka klasa.
Programi se ne prevode u lokalni kod negu u IL. Kada se porene CLR prevodi kod u lokalni kod konkretnog racunara.
.NET framework definise opstu specifikaciju jezika CLS i obezbedjuje opste izvrsno okruzenje.
CLRCLR predstavlja izvrsno okruzenje .NET platforme. CLR obradjuje kod prilikom izvravanja. Kod napisan za CLR zove se kontrolisani kod. Kod prolazi proveru pre nego sto mu CLR dozvoli rad. Ne dozvoljava da nijedna aplikacija osteti memoriju, da ne pristupi memoriji koja joj ne pripada. C# koristi pokazivace ali se oni nalaze poda maskom referenci. CLR lovi situacije pristupa nedozvoljenoj memoriji i ako nadje neku takvu baca izuzeta.
Jos jedna karakteristika CLR-a je skupljanje smeca. Skupljanje smeca je postupak otkrivanja nekoriscenih objekata u dinamickoj memoriji i njihovog automatskog brisanja, ukoliko se utvrdi da oni nisu dostupni. Moguce je i da sami pozovete skupljace smeca.
CTS Common Type System (Sistem Optih Tipova) je sastavni deo CLR-a.
Definie pravila za deklarisanje, korienje i upravljanje tipovima.
Dati du svi predefinisani tipovi podataka koji su dostupni u IL-u.
Podrava i vrednosne i referentne tipove.
Od tipa podataka koje promenjiva treba da sadri zavisi da li e ona biti vrednosnog ili referentnog tipa.
Object je osnovna klasa koja predstavlja bilo koji tip, odnosno iz nje se izvode svi ostali tipovi.
C# ima 15 predefinisanih tipova od kojih su 13 vrednosni, a 2 su referentni tipovi (string i object).
O C#
C# je , , , , . .
: 'Ja volim C#' . class Primer00
{
static void Main() {
System.Console.WriteLine("** Ja volim C# **");
}
}
- class je , a Primer00 je - , , Primer00
- o Main() () ; static Main() , () ; void, ;
Main() - ,
- , Main() - (source code) C# *.cs;. () , C# (C Sharp Compiler, csc):
E:\C Sharp\Kod>csc Primer00.cs
(executable program) Primer00.exe, .
- C# . , ( C# ) Main(). static Main() , , .
- C# forward , .- using System; (namespace) System Microsoft .NET Framework Class Library (MS .NET FCL). Console, koja Main() . (namespace-a). , Console.WriteLine() je System.Console.WriteLine()- \n; escape C#
- C# je o , C, , escape ka ( escape ). char string (), (), (\), escape , . \ . (backslash) . (string-) o \, o \\, a \. , , , , . escape , Unicode :
Escape sequenceOUnicode \'Je (single quote)0x0027
\" (double quote)0x0022
\\ (backslash)0x005C\0Null0x0000
\a (alert)0x0007
\bJe (backspace)0x0008
\f (form feed)0x000C
\n (new line)0x000A
\rK (carriage return)0x000D
\t (horizontal tab)0x0009
\v (vertical tab)0x000B
: (. Main) . using System;class Primer02
{
static void Main(string[] args) {
Console.WriteLine("** Primer 02 **\n");
Console.WriteLine("Argument #1: {0}", args[0]);
Console.WriteLine("Argument #2: {0}", args[1]);
}
}
- Main() , args; . args
- Console.WriteLine ; string, placeholdere, . {0}, {1} . placeholder o .
- :
E:\C Sharp\Kod>Primer02
, . :
Unhandled Exception: System.IndexOutOfRangeException: Index was outside
the bounds of the array. at Primer02.Main(String[] args)
- :
E:\C Sharp\Kod>Primer02 777
, . :
Unhandled Exception: System.IndexOutOfRangeException: Index was outside
the bounds of the array. at Primer02.Main(String[] args) in Primer02.cs:line 19
A :
E:\C Sharp\Kod>Primer02 777 AaaA BB22
, .
aritmetiki+ - * / %
logiki& | ^ ~ && || !
spajanje stringova+
inkrement, dekrement++ --
iftovanje bitova>
poreenja== ! = >= >= =, binarni +, binarni -, ^, &, |, ~, ++, --, sizeof
:
Boja boja = Boja.Crvena;
Console.WriteLine(boja++); // Zelena : ek Zaposleni imePrezime radStaz. .using System;namespace Tipovi
{ class Primer3 {
public struct Zaposleni
{
public string imePrezime;
public int radStaz;
}
static void Main()
{
Zaposleni radnik;
radnik.imePrezime=" Pera Peric";
radnik.radStaz=23;
Console.WriteLine("Ime i prezime:{0}",radnik.imePrezime);
Console.WriteLine("Godine radnog staza:{0}",radnik.radStaz);
} }}
Ime i prezime: Pera Peric
Godine radnog staza: 23
- (struct) ( ) . System.ValueType-. . struct , .- : imePrezime string radStaz t int. public .- Main radnik, koja je Zaposleni. , (.), .
- . public struct Zaposleni
{
public string imePrezime;
public int radStaz=23; // greka
}- !
- new, , (heap-)!
Zaposleni radnik=new Zaposleni();
radnik.imePrezime=" Pera Peric";
radnik.radStaz=23;- ( ) . (default) , .
- radStaz radnik , . :
Zaposleni radnik=new Zaposleni();
radnik.imePrezime=" Pera Peric";
Console.WriteLine("Ime i prezime:{0}",radnik.imePrezime);
Console.WriteLine("Godine radnog staza:{0}",radnik.radStaz); :
Ime i prezime: Pera Peri
Godine radnog staza: 0 // podrazumevana vrednost za tip int je 0
- , 0, false . string koj , null.
- !
- , :
public struct Zaposleni
{
public string imePrezime;
public int radStaz;
}
static void Main()
{
Zaposleni radnik=new Zaposleni();// alokacija memorijskog
// prostora na stek-u
metod(radnik); // poziv metode metod koja ima kao parametar
// ima strukturnu promenljivu radnik
}
static void metod(Zaposleni kopija) //deklarisanje metode metod
{
kopija.imePrezime="Marko Markovic";
kopija.radStaz=24;
} o , . ref , .
Ko : , int a double. real , real . .using System;
namespace Tipovi
{
class Primer4 {
static void Main()
{
//dodeljivanje vrednosti celobrojnoj promenljivoj
int ceoBroj=123; //realna promenljiva dobija vrednost celobrojne
//implicitna konverzija
double realanBroj=ceoBroj; Console.WriteLine("Implicitno-->(double){0}={1}",ceoBroj,realanBroj); // dodeljivanje vrednosti reanoj promenljivi
realanBroj=87.25; //celobrojna promenljiva dobija vrednost realne
//ekspicitna konverzija
ceoBroj=(int)realanBroj;
Console.WriteLine("Eksplicitno-->(int){0}= {1}",realanBroj,ceoBroj);
}
}}
Implicitno-->(double)123=123
Eksplicitno-->(int)87.25=87
. , , . , ;
, . ., ceoBroj 2 , 4 , ceoBroj , :
ceoBroj=(int)realanBroj; ;
- :
sbyte (short, int, long, float, double, decimal
byte (short, ushort, int, uint, long, ulong, float, double, decimal
short (int, long, float, double, decimal
ushort (int, uint, long, ulong, float, double, decimal
int (long, float, double, decimal
uint (long, ulong, float, double, decimal
long (float, double, decimal
ulong (float, double, decimal
char (ushort, int, uint, long, ulong, float, double, decimal
float (double
- Ek :
sbyte (byte, ushort, uint, ulong, char
byte (sbyte, char
short (sbyte, byte, ushort, uint, ulong, char
ushort (sbyte, byte, short, or char
int (sbyte, byte, short, ushort, uint, ulong, char
uint (sbyte, byte, short, ushort, int, char
long (sbyte, byte, short, ushort, int, uint, ulong, char
ulong (sbyte, byte, short, ushort, int, uint, long, char
char (sbyte, byte, short
float (sbyte, byte, short, ushort, int, uint, long, ulong, char, decimal
double (sbyte, byte, short, ushort, int, uint, long, ulong, char, float, decimal
decimal (sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double
- Ek Convert. val . C#, ., int Convert.ToInt32(). .NET System. :
Ko
Convert.ToBoolean (val)
Convert.ToByte(val)
Convert.ToChar(val)
Convert.ToDecimal(val)
Convert.ToDouble(val)
Convert.ToInt16(val)
Convert.ToInt32(val)
Convert.ToInt64(val)
Convert.ToSbyte(val)
Convert.ToSingle(val)
Convert.ToString(val)
Convert.ToUInt16(val)
Convert.ToUInt32(val)
Convert.ToUInt64(val)
val je bool
val je byte
val je char
val je decimal
val je double
val je short
val je int
val je longval je sbyte val je floatval je string
val je ushortval je uint
val je ulong
. :
(if switch)
(while,do, for foreach)
(goto, break continue).
Ko if : . , .using System;
namespace Naredbe
{ class primer
{ static void Main()
{
Console.WriteLine("Unesite slovo:"); //unos sa tastature je tipa string pa se vri konverzija u char
char c=Convert.ToChar(Console.ReadLine());
//provera da li je uneto slovo
if (Char.IsLetter(c)) //provera da li je malo slovo
if (Char.IsLower(c))
Console.WriteLine("Uneti znak je malo slovo abecede!");
else //ukoliko nije malo onda je veliko slovo
Console.WriteLine("Uneti znak je veliko slovo abecede!"); //ako nije ispunjen uslov prve if naredbe sledi
else
Console.WriteLine(" Uneti karakter nije slovo abecede!!!");
}
}}
Unesite jedan karakter
A
Uneti znak je veliko slovo abecede
- if a:
if () if ()
1 ( )
else // else // 2 ( )- 1 . ( Char.IsLetter(c)), , Char.IsLower(c).ko . , .- .
- if . else e o aj if ! if . if a, :
if ( 1 )
1; else if ( 2 )
2;
else
3;- , switch a.Ko switch : . .
using System;
namespace Naredbe
{ class Primer7 {
enum godStudija
{
prva=1,
druga,
treca,
cetvrta
}
static void Main()
{
Console.WriteLine("Unesite godinu studija:");
int n=int.Parse(Console.ReadLine());
switch (n)
{
case (int)godStudija.prva:
Console.WriteLine(" Na prvoj godini strudija ima 7 ispita");
break;
case (int)godStudija.druga:
Console.WriteLine("Na drugoj godini studija ima 9 ispita");
break;
case (int)godStudija.treca:
Console.WriteLine("Na trecoj godini studija ima 12 ispita");
break;
case (int)godStudija.cetvrta:
Console.WriteLine("Na cetvrtoj godini studija ima 14 ispita");
break;
default: Console.WriteLine("Studije na FON-u traju cetiri godine!\a");
break;
}
}
}}
Unesite godinu studija:
4
Na cetvrtoj godini studija ima 14 ispita
- switch , , switch, , , . : char, enum, string . switch ( selektor )
{
case konstanta1:
naredba1(blok1); break;
case konstanta2:
naredba2(blok2); break;
default:
naredba3(blok3); break;
}
- case default selektora.Kao case break .
- default case , 4, 1., default switch-.
- - switch (n) {
case 1: Console.WriteLine(" Na prvoj godini strudija ima 7 ispita");
break; ///greka
case 2,4: Console.WriteLine("Na drugoj godini studija ima 9 ispita");
break; ... - goto .
switch (n) {
case 1: Console.WriteLine(" Na prvoj godini strudija ima 7 ispita");
break; case 2: goto case 1;// u sluaju da je n 2, ispisae se kao i da je uneto 1!
... } goto !
- : switch (n) {
case 1: case 2: Console.WriteLine("Na drugoj godini studija ima 9 ispita");
break; ...
} - case 1 case 2 , case 1 break switch .
-, , default . switch (n) {
case 1: Console.WriteLine(" Na prvoj godini strudija ima 7 ispita");
break; case 1: Console.WriteLine("Na drugoj godini studija ima 9 ispita");
break; default:
default:... }- !- : char, enum, string .. while : 10.
using System;
namespace Naredbe
{ class Primer8 {
static void Main()
{
//inicijalizacija vrednosti promenljivih
int i=2;
int suma=0;
while (i