Comparing Swift and C#
"Swift and C# Quick Reference – Language Equivalents and Code Examples"
Reference http://download.microsoft.com/download/4/6/9/469501F4-5F6B-4E51-897C-9A216CFB30A3/SwiftCSharpPoster.pdf
| Variables |
Swift |
C# |
| boolean |
Bool |
bool |
| constant |
let |
const |
| declaration |
var |
var |
| float |
Float, Double |
float, double |
| integer |
Int |
int |
| optional value type |
? (optional) |
? (nullable) |
| optional ref type |
? (optional) |
planned |
| tuple |
tuple |
System.Tuple |
| string |
String (value) |
string (reference) |
| Operators |
Swift |
C# |
| arithmetic |
+, -, *, /, % |
+, -, *, /, % |
| assignment |
= |
= |
| bitwise |
<<, >>, &, |, ~, ^, |
<<, >>, <<=, >>= &, |, ^, ~ |
| overflow |
&+, &-, &*, &/, &% |
checked unchecked |
| overloading |
overloading |
overloading |
| range |
a..<b, a…b |
(no equivalent) |
| relational |
==, !=, >, < |
==, !=, >, < |
| Control flow |
Swift |
C# |
| break, continue |
break, continue |
break, continue |
| do-while |
repeat-while |
do-while |
| for |
for |
for |
| for-in |
for-in |
foreach-in |
| if |
if |
if |
| locking |
(no equivalent) |
lock |
| queries |
(no equivalent) |
LINQ |
| switch |
switch, fallthrough |
switch |
| try-catch, throw |
assert, try-catch, throw |
try-catch, throw |
| using |
(no equivalent) |
using |
| unsafe |
(no equivalent) |
unsafe |
| while |
while |
while |
| yield |
(no equivalent) |
yield |
| Classes |
Swift |
C# |
| constructor |
init |
constructor |
| class |
class |
class |
| partial class |
(no equivalent) |
partial class |
| delegate |
function types, lambdas (swift calls them closures) |
delegate, lambdas |
| destructor |
deinit |
destructor |
| extension |
extension (most types) |
extension (only class but swift like extension planned ) |
| indexing |
subscript |
indexer |
| inheritance |
: |
: |
| access |
private, fileprivate, internal, public, open |
public, private, protected, interal |
| object |
AnyObject (reference), Any (value) |
object |
| self |
self |
this |
| type casting |
is, as, as? |
is, cast, dynamic, as |
| type alias |
typealias (supports Generics) |
using |
| Types |
Swift |
C# |
| enumerations |
enum |
enum |
| functions |
top level func |
(no equivalent) maybe delegates |
| protocol |
protocol |
interface |
| struct |
struct |
struct |
| Functions |
Swift |
C# |
| anonymous |
closures |
lambdas |
| class method |
static |
static |
| method |
func |
method |
| overloaded |
overloading |
overloading |
| override |
override |
override |
| ref parameter |
inout, & |
ref, & |
| parameter array |
params, T... |
parameter array |
| return |
return |
return |
| Collections |
Swift |
C# |
| dictionary |
Dictionary<Key, Value> |
Dictionary<S,T> |
| initialization |
object initializer |
object initializer |
| list |
Array |
List<T> |
| set |
Set |
HashSet<T> |
| Math |
Swift |
C# |
| minimum |
min |
Min |
| maximum |
max |
Max |
| power |
pow |
Pow |
| random numbers |
random |
Random.Next |
| trigonometry |
sin |
Sin |
| Generics |
Swift |
C# |
| function |
generic functions |
generic functions |
| type |
generic types |
generic types |