MViktor írta:
Szornyusegesen nez ki, de fordul, sot! mukodik. http://en.wikipedia.org/wiki/Duff’s_device
Igen, innen vettem én is. :)
Rétikánya:
Magamtól szörnyülködtem. Megnéztem a Wikin…
…s ilyenkor mindig rájövök mennyire nem is értek a programozáshoz. El kéne mennem favágónak.
Nem, nem. Ez hekk, nem normális programozás. Gondolj bele, ha minden nap ilyen kódot kellene megértened. Ez kb. olyan kód, mint amit mickkék csináltak az NavAndGo-s felvételi kampányukban. Amikor egy kódról nem látszik villámgyorsan mit csinál, akkor az vagy zseniális hekk, vagy egy kalap szar. Ez a kód azért érdekes, mert az ember nem is gondolja, hogy ez a szintaxis egyáltalán lefordul C-ben, pedig de. :) Ahogy a cikk is írja, lehet, hogy még hatékonyabb is, mint az eredeti ciklusos megoldás, de mai compilereken és procikon már ez se biztos. Ha az embernek határozott célja van egy hekkel, és bebizonyítja, hogy ezt a célt teljesíti, hekkeljen. Ha nem, írjon olvasható kódot. Szóval ne írd le magad, ez eszement kód. :)
SebDani:
Ebben az esetben szívesen rácsapnék a kezére annak aki azt a fordítót írta, amin ez lefordul.
Elvileg minden C kompatiblis szabvány fordítón fordul. :) Ilyen laza a nyelv szintaxisa. Elő kell vennem a Kernighan-Ritchie könyvet újra, de nem azért, hogy ilyenekkel szórakoztassam a kollégáimat. :)
Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.
LEAVE A COMMENT
9 COMMENTS
Soci: megtennéd, hogy egy kicsit – pár mondatban – írnál erről a kódról valami infót olyanoknak mint pl én (én != programozó)? Nem C tanfolyamot várok, csak egy kis magyarázatot. Gondolom baromi érdekes ha helyet kapott itt. Köszönöm!
Közben után kérdeztem/néztem szóval már tárgytalan a kérés!
A link nagy D-vel várja el… http://en.wikipedia.org/wiki/Duff%27s_Device
Elnezest, hogy ide postolom, de tudja valaki ez miert dob exceptiont?
using System;
using System.Security.Permissions;
using System.Windows.Forms;
namespace foo
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.PropertyGrid propertyGrid1;
public Form1()
{
this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
this.SuspendLayout();
this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.propertyGrid1.SelectedObject = this.propertyGrid1;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.propertyGrid1);
this.ResumeLayout(false);
}
[STAThread]
[FileIOPermission(SecurityAction.Deny, Read = “C:\\temp\\xxx.txt”)]
static void Main()
{
Application.Run(new Form1());
}
}
}
E miatt:
this.propertyGrid1.SelectedObject = this.propertyGrid1;
Van ennek értelme?
Persze, azzal semmi gond nincs. Ha kiveszed a [FileIOPermission(SecurityAction.Deny, Read = “C:\\temp\\xxx.txt”)] sort, akkor le is fut rendesen. De ha lecsereled = new object()-re akkor is jon az exception…
Persze szemantikailag sok ertelme nincs, csak demonstralni, hogy ott dobodik furcsa es erthetetlen modon egy erthetetlen exception…
I see, most elmegyek vizsgázni, de este megnézem, elég bizarr.
Bocs a fooldert, de ez meg erdekes lehet: Ezt meg anno a .NET 1.0 -ban fedeztem fel, es benne volt az 1.1-ben, 2.0-ban, es most benne van a 3.0-ban es a 3.5 betaban is… Szoval furcsa.