icsadam 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!

Változók

ObjC C#
int i = 10;
BOOL b = YES;
id anObject;
NSString* h = @"Hello";
int i = 10;
bool b = true;
(dynamic) anObject;
string h = "Hello";

 

Metódushívás

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);

 

Propertyk elérése

ObjC C#
album.title = @"Birthday";
int count = album.picnum;
album.title = "Birthday";
int count = album.picnum;

 

Példányosítás

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



}

 

Destruktor

ObjC C#
- (void) dealloc
{
  //release objects
  [anObject release];
  [super dealloc];
}
~ClassName()
{

  //release resources

}

 

Osztályok

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.
süti beállítások módosítása