2009.06.04. 15:30
C# vs. Objective-C
Nem tagadom, hogy a .Net világból jöttem. Gondolom sokan vannak így, nekik szól az alábbi kis összefoglaló. Egyébként a C# 4-ben egyre több ObjC-re hajazó megoldás jelent meg, nem is tudom miért :) Node semmi rizsa, következzen a lényeg!
ObjC | C# |
int i = 10; BOOL b = YES; id anObject; NSString* h = @"Hello"; | int i = 10; bool b = true; (dynamic) anObject; string h = "Hello"; |
ObjC | C# |
[anObject method]; [anObject methodWithParam:param]; s=[NSString stringWithFormat:[item format]]; NSString* s = [text uppercaseString]; r = [system loginWithName:name password:pwd]; | anObject.method(); anObject.method(param); s= String.Format(item.format()); string s = text.ToUpper(); r = system.Login(name, pwd); |
ObjC | C# |
album.title = @"Birthday"; int count = album.picnum; | album.title = "Birthday"; int count = album.picnum; |
ObjC | C# |
NSString* szoveg=[NSString alloc] init]; NSArray* arr =[[NSArray alloc] initWithObjects: "Me",@"Myself",@"I",nil]; | String szoveg=new String(); String[] arr = new string[] {"Me","Myself","I"}; |
Konstruktor
ObjC | C# |
- (id) init { if ( self=[super init] ) { //constructor logic } return self; } | public ClassName() { // constructor logic } |
ObjC | C# |
- (void) dealloc { //release objects [anObject release]; [super dealloc]; } | ~ClassName() { //release resources } |
ObjC | C# |
//Alma.h #import <Foundation/NSObject.h> @interface Alma:NSObject { NSString* szin; int suly; } @property(retain) int suly; + (BOOL) create(); - (void) kifacsar(); @end //Alma.m #import "Alma.h" @implementation Alma + (BOOL) testAlma: (Alma* a) { if (a.suly>3) { return YES; } else return NO; } - (void) kifacsar() { NSLog(@"Facsarom"); } @end | class Alma { String szin; int Suly {get; set;); public static bool test(Alma a) { return (a.suly > 3); } public void kifacsar() { Console.WriteLine("facsarom"); } } |
Interfészek
ObjC | C# |
@protocol Printable - (void) print; @end | interface Printable { void print(); } |
Kiíratás, loggolás
ObjC | C# |
NSLog(@"Debug info"); | System.Diagnostics.Trace.Log.WriteLn("Debug info"); |
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Nincsenek hozzászólások.