Správičky 2 799 Blogy 945 Fórum 18 550

C# zapis

photo
zolino11
18. 10. 2017 10:41:49
Body: 25
Najaktívnejší č.: 240

C# zapis

Dobry den,

potreboval by som vysvetlit co presne robi zapis v druhom riadku codu:

ref IFeatureLayer layerRef;
ILayer fl = *(layerRef = (IFeatureLayer) &this._featureLayer);

zo zapisom v druhom riadku som sa este nestretol..


[Reakcia]

photo
harrison314
18. 10. 2017 16:54:09
Body: 1080
Najaktívnejší č.: 24

RE: C# zapis

Si si isty, ze je to C#?

V unsafe kode je mozne pouzit toto aj v C#, ale pride mi to divne.

No malo byt to robit:

  1. Spravi refernciu z hhodnoty this._featureLayer
  2. pretypuje na IFeatureLayer a priradi do lyerRef
  3. Znovu spravi refenciu a priradi ju do ILayer

[Reakcia]

photo
Liero
18. 10. 2017 17:43:00
Body: 9340
Najaktívnejší č.: 6

RE: C# zapis

Teda, C++ som riesil naposledy v druhom semestri na vyske, ale skusil by som to rozbit takto:

ref IFeatureLayer layerRef;

//1.
char* pointerToFeatureLayer =  &this._featureLayer;

//2.
layerRef = (IFeatureLayer)pointerToFeatureLayer;

//3.
ILayer fl = *(layerRef);

 

  1. & ziska adresu fieldu _featureLayer. Cize pointer na _featureLayer;
    Kedze tento field je referencneho typu, ziskas adresu na referenciu, cize ref IFeatureLayer

  2. Iba pretypovanie pointera na .NET referenciu

  3. ziskanie aktualnej hodnoty

 

Mimochodom, pracu s pointrami C# prebral od C++, vid: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/unsafe-code

 

ale snad by bolo lepsie studovat C++ pointre, kedze tam je to o kusok jednoduchsie, kedze nemusis riesit Garbage Collector, ktory ti moze popresuvat objekty v pamati. Dane znalosti sa potom daju aplikovat v C#

 

 

 

[Reakcia]

photo
harrison314
18. 10. 2017 19:50:16
Body: 1080
Najaktívnejší č.: 24

RE: C# zapis

C++ nema klucove slovo ref.

Teoreticky tomoze byt C++/CLI. prosto by sa ktomu zisiel kontext.

[Reakcia]

photo
Liero
18. 10. 2017 20:41:48
Body: 9340
Najaktívnejší č.: 6

RE: C# zapis

Je to jednoznacne C#. C++ som spominal len kvoli tomu, ze prave od neho ich C# prebral

[Reakcia]

photo
zolino11
19. 10. 2017 12:30:20
Body: 25
Najaktívnejší č.: 240

RE: C# zapis

dakujem za vysvetlenie

[Reakcia]



Najaktívnejší užívatelia
1. 37750 b. photo vlko
2. 21315 b. photo T
3. 15955 b. photo spigi
4. 15450 b. photo Anonymous
5. 11110 b. photo dudok
6. 9340 b. photo Liero
7. 6885 b. photo siro
8. 6245 b. photo slavof
9. 5355 b. photo duracellko
10. 4445 b. photo xxxmatko