C-də "statik" mənası nə deməkdir?

C static müxtəlif yerlərdə istifadə olunan static sözü gördüm; C # -də statik funksiya / sinif kimi mi (obyektlərin arasında paylaşılan tətbiqdir)?

868
21 февр. 21 fevralda David tərəfindən təyin olundu 2009-02-21 09:47 '09 da 9:47 'da 2009-02-21 09:47
@ 20 cavab
  • Funksiyanın içərisində olan statik dəyişən zənglər arasında dəyərini saxlayır.
  • Statik bir qlobal dəyişən və ya funksiya yalnız bildirilən bir faylda "görülür"

(1) bir başlanğıc varsa, daha bir kənar mövzu, belə bir nümunə:

 #include <stdio.h> void foo() { int a = 10; static int sa = 10; a += 5; sa += 5; printf("a = %d, sa = %d\n", a, sa); } int main() { int i; for (i = 0; i < 10; ++i) foo(); } 

Məqalələr:

 a = 15, sa = 15 a = 15, sa = 20 a = 15, sa = 25 a = 15, sa = 30 a = 15, sa = 35 a = 15, sa = 40 a = 15, sa = 45 a = 15, sa = 50 a = 15, sa = 55 a = 15, sa = 60 

Bu, bir funksiyanın zənglər arasında bir dövlətin saxlanması lazım olan hallar üçün faydalıdır və siz qlobal dəyişənləri istəmirsiniz. Ancaq yadda saxlayın ki, bu funksiya çox az istifadə edilməlidir - kodunuzu təhlükəli və anlamaq çətinləşdirir.

(2) Geniş şəkildə giriş nəzarət funksiyası kimi istifadə olunur. Bəzi funksiyaları yerinə yetirən bir .c faylınız varsa, adətən istifadəçilərə yalnız bir neçə "açıq" funksiya təqdim edir. Funksiyaların qalan hissəsi static olmalıdır, belə ki istifadəçi onlara daxil ola bilməz. Bu, encapsulation, yaxşı təcrübədir.

Vikipediya Citation:

C proqramlaşdırma dilində statik, qlobal dəyişənlər və funksiyaları olan faylları yükləmək üçün istifadə olunur. Yerli dəyişənlərdə statik yaddaş avtomatik olaraq ayırma yerinə statik olaraq paylanmış yaddaşda bir dəyişən saxlamaq üçün istifadə olunur. Dildə yaddaşın tətbiqinin növü diktə edilməsə də, statik olaraq ayrılan yaddaş adətən vaxt tərtib edildikdə proqramın məlumat seqmentində saxlanılır, avtomatik olaraq ayrılan yaddaş isə keçid zəng yığınları kimi həyata keçirilir.

Daha çox və burada baxın.

Və ikinci sualınıza cavab vermək üçün C # kimi görünmür.

Lakin C ++ da static sinfi atributlarını (eyni sinifin bütün obyektləri arasında paylaşılan) və metodları müəyyən etmək üçün də istifadə olunur. C'de heç bir sinif yoxdur, bu funksiya əhəmiyyətli deyil.

1234
21 февр. Cavab Eli Bendersky tərəfindən verilir 21 Fevral. 2009-02-21 09:51 '09 da 9:51 am 2009-02-21 09:51

Burada nəzərə alınmayan başqa bir istifadə var və bu funksiya arqumenti kimi bir sıra tipli bəyannamənin bir hissəsidir:

 int someFunction(char arg[static 10]) { ... } 
border=0

Bu kontekstdə bu funksiyaya ötürülən mübahisələrin ən azı 10 elementə malik bir növ tipli bir sıra olması lazımdır. Daha ətraflı məlumat üçün buraya baxın .

190
01 мая '13 в 10:13 2013-05-01 10:13 cavab 01 May '13 'da 10:13' da yuxu tərəfindən verilir 2013-05-01 10:13

Qısa cavab ... asılıdır.

  • Statik yerli dəyişənlər funksiya zəngləri arasında dəyərini itirmirlər. Başqa sözlə, onlar qlobal dəyişənlərdir, lakin müəyyənləşdirildikləri yerli funksiyaya bağlıdırlar.

  • Statik qlobal dəyişənlər müəyyən edilmiş C faylından kənarda görünmür.

  • Statik funksiyalar müəyyən edilmiş C faylının xaricində görünmür.

140
21 февр. Cavab smcginty tərəfindən verilir 21 Fevral. 2009-02-21 09:56 '09 saat 09:56 'da 2009-02-21 09:56

Bir neçə faylın nümunəsi

ac :

 #include <stdio.h>  extern int i;  static int si = 0; void a() { i++; si++; puts("a()"); printf("i = %d\n", i); printf("si = %d\n", si); puts(""); } 

main.c :

 #include <stdio.h> int i = 0; static int si = 0; void a(); void m() { i++; si++; puts("m()"); printf("i = %d\n", i); printf("si = %d\n", si); puts(""); } int main() { m(); m(); a(); a(); return 0; } 

Kompilyasiya :

 gcc -c ac -o ao gcc -c main.c -o main.o gcc -o main main.o ao 

Çıxış :

 m() i = 1 si = 1 m() i = 2 si = 2 a() i = 3 si = 1 a() i = 4 si = 2 

şərh

  • si üçün iki ayrı dəyişən var: hər bir fayl üçün
  • i üçün tək ümumi dəyişən var

Hər zamanki kimi, əhatə dairəsi daha yaxşıdır, buna görə də static dəyişənləri daima göstərin.

C proqramlaşdırmasında, fayllar tez-tez "dərsləri" təmsil etmək üçün istifadə olunur və static dəyişənlər xüsusi statik sinif üzvləridir.

Hansı standartlarda bu barədə danışmaq olar?

C99 N1256 layihəsi 6.7.1 "Saxlama sinif göstəriciləri" static "storage class specifier" deyir.

6.2.2 / 3 "Kimlik əlaqələri" deyir ki, static internal linkage deməkdir:

Bir obyekt və ya funksiya üçün fayl sahəsi identifikatorunun bəyannaməsi saxlama sinfi spesifikatorunu statikdə saxlayırsa, identifikator daxili şəkildə bağlıdır.

və 6.2.2 / 2-də deyilir ki, internal linkage nümunədə olduğu kimi davranır:

Bütün proqramı təşkil edən tərcümə vahidləri və kitabxanalar dəstində, xarici link ilə müəyyən bir identifikatorun hər bir bəyanatı eyni obyekt və funksiyanı nəzərdə tutur. Eyni tərcümə bölməsində, hər bir identifikator bəyannaməsi daxili link ilə eyni obyekt və funksiyanı əks etdirir.

burada "tərcümə vahidi" əvvəlcədən işləndikdən sonra orijinal fayldır.

GCC bu ELF (Linux) üçün necə tətbiq olunur?

STB_LOCAL bağlama ilə.

Əgər tərtib ediriksə:

 int i = 0; static int si = 0; 

simvol masasını təhlil edin:

 readelf -s main.o 

çıxış daxildir:

 Num: Value Size Type Bind Vis Ndx Name 5: 0000000000000004 4 OBJECT LOCAL DEFAULT 4 si 10: 0000000000000000 4 OBJECT GLOBAL DEFAULT 4 i 

Ona görə də, bağlama onların aralarında bir əhəmiyyətli fərqdir. Value yalnız .bss bölməsinə .bss , buna görə də fərqli olmasını gözləyirik.

STB_LOCAL , ELF spesifikasiyasında http://www.sco.com/developers/gabi/2003-12-17/ch4.symtab.html ünvanında qeydiyyatdan keçmişdir:

STB_LOCAL Yerli xarakterlər onların tərifini ehtiva edən obyekt faylının xaricində görünmür. Eyni adı olan yerli simvollar bir-birinə müdaxilə etmədən bir neçə faylda mövcud ola bilər.

static təmsil etmək üçün ideal seçimdir.

Statics olmadan dəyişənlər STB_GLOBAL və dəqiqləşdirmə deyir:

Bağlantı redaktoru bir çox relokatable obyekt faylını birləşdirəndə, eyni adı olan STB_GLOBAL simvol birdən çox təsvirə icazə vermir.

çox qeyri-stasionar anlayışlarda ünsiyyət səhvlərinə uyğun gəlir.

-O3 ilə optimallaşdırma -O3 , -O3 simvolu tamamilə sembol masasından çıxarılır: xaricdən istifadə edilə bilməz. TODO, niyə optimallaşdırma olmadığı zaman simvol masasında statik dəyişənlər yoxdur? Onlar bir şey üçün istifadə edilə bilərmi? Bəlkə ayaqlaşmaq üçün.

Həmçinin baxın

Özünüzü sınayın

Oyun üçün github üçün nümunə .

45
15 янв. Ciro Santilli tərəfindən verilmiş cavab 改造 改造 中心 六四 事件 tövsiyə Jan 15 2013-01-15 16:41 '13 at 4:41 pm 2013-01-15 16:41

Bu asılıdır:

 int foo() { static int x; return ++x; } 

Bu funksiya 1, 2, 3, və s. Dönəcəkdir. --- Dəyişən yığında deyil.

ac:

 static int foo() { } 

Bu, bu funksiyanı yalnız bu faylda əhatə edir. Beləliklə, ac və bc müxtəlif foo() s foo() malik ola bilər və foo paylaşılan obyektlərə tabedir. Ona görə də, əgər foo-u ac olaraq tanımlasaydınız, bc dən və ya digər yerlərdən istifadə edə bc .

C kütüphanelerinde bütün "xüsusi" funksiyalar statikdir və ən "ictimai" deyildir.

32
21 февр. cavab Artyom 21 fevralda verilir. 2009-02-21 09:57 '09 da 9:57 'da 2009-02-21 09:57

İnsanlar C-də "statik" olduğunu iki məna ifadə edirlər. Mən bir məna verən alternativ bir yol təklif edirəm:

  • Bir elementə "statik" element tətbiq etmək bu elementin iki xüsusiyyətə malik olmasına səbəb olur: (a) cari bölgənin kənarında göstərilmir; b) davamlıdır.

Bunun iki mənası vardır ki, "statik" tətbiq oluna bilən hər bir elementdə bu iki xüsusiyyətdən biri mövcuddur, buna görə də bu xüsusi istifadə yalnız digərinə aiddir.

Məsələn, dəyişənləri nəzərdən keçirin. Funksiyaların kənarında elan edilmiş dəyişənlər artıq (data seqmentində) sabitdirlər, buna görə də "statik" istifadəsi onları mövcud bölgədən (kompilyasiya vahidi) kənarda görünməz hala gətirir. Əksinə, funksiyalarda elan edilmiş dəyişənlər artıq mövcud sahə (funksiya) xaricində görünürlük göstərmirlər, buna görə də "statik" istifadə yalnız onları daimi edə bilər.

Funksiyalara "statik" verilməsi onu qlobal dəyişənlərə tətbiq etməyə bənzəyir - kod mütləq sabitdir (ən azı dil daxilində), belə ki, yalnız görünürlük dəyişdirilə bilər.

Qeyd. Bu şərhlər yalnız C üçün tətbiq edilir. C ++ 'da, statik metodları bir sinifə tətbiq edərək, sözü başqa bir məna verir. Eynilə C99 arqumentinin genişləndirilməsi üçün.

18
27 апр. Cavab 27 aprel tarixində PMar tərəfindən verilir 2016-04-27 16:47 '16 saat 16:47 'da 2016-04-27 16:47

static müxtəlif kontekstlərdə fərqli şeylər deməkdir.

  • C funksiyasında statik bir dəyişən bəyan edə bilərsiniz. Bu dəyişən yalnız funksiyada görünür, ancaq qlobal olaraq davranır, çünki yalnız bir dəfə başlayır və dəyəri saxlayır. Bu misalda, hər dəfə foo() çağırdığınızda, artan sayda çap olunacaq. Statik bir dəyişən yalnız bir dəfə başlayır.

     void foo () { static int i = 0; printf("%d", i); i++ } 
  • Statik bir istifadəsi bir .c faylında bir funksiya və ya qlobal dəyişən tətbiq edərkən, lakin onun xarakterinin yaratdığı .obj faylının xaricində görünməsini istəmirəm. məsələn.

     static void foo() { ... } 
12
21 февр. Cavab ləğv olunub 21 fevral. 2009-02-21 09:55 '09 saat 09:55 'da 2009-02-21 09:55

Vikipediya:

C proqramlaşdırma dilində statik, qlobal dəyişənlərlə və funksiyanı bir fayl daxilində müəyyən etmək üçün istifadə olunur. Yerli dəyişənlərdə statik bir dəyişən avtomatik olaraq ayrılan yaddaş yerinə statik olaraq paylanmış yaddaşda saxlamaq üçün istifadə olunur. Dil, hər hansı bir yaddaş növü tətbiqini diktə etmirsə, statik olaraq ayrılan yaddaş adətən proqramın məlumat seqmentində kompilyasiya müddətində qorunur, avtomatik olaraq ayrılan yaddaş isə keçid zəng yığınları kimi tətbiq olunur.

11
21 февр. Cavab verildi OscarRyz 21 fevral. 2009-02-21 09:52 '09 saat 09:52 'da 2009-02-21 09:52

Köhnə suallara cavab vermək istəmirəm, amma K R'nin C proqramlaşdırma dilinin A4.1 bölməsində bunu necə izah etdiyini düşünmürəm.

Bir sözlə statik sözün iki mənası ilə istifadə olunur:

  • Statik iki saxlama sinifindən biridir (digər avtomatikdir). Statik bir obyekt zənglər arasında dəyərini saxlayır. Bütün blokların xaricində elan edilmiş obyektlər həmişə statikdir və avtomatik ola bilməz.
  • Ancaq static olduqda (əsas söz kimi kodda istifadəyə böyük əhəmiyyət verilir) reklamla istifadə olunur, bu obyektin bu daxili əlaqəsini verir, belə ki, yalnız tərcümə vahidində istifadə edilə bilər. Ancaq bir söz funksiyası istifadə edildiyində, obyektin saxlama sinfi dəyişir (obyekt yalnız bu funksiyanın içərisində görünəcək). extern əksinə bir obyektə xarici bir keçid verən xarici söz.

Peter Van Der Linden bu iki dəyərləri Ekspert Proqramlaşdırma Proqramında verir:

  • Funksiyanın içərisində onun dəyəri zənglər arasında saxlanılır.
  • Funksiya səviyyəsində yalnız bu faylda göstərilir.
6
31 марта '16 в 2:49 2016-03-31 02:49 cavab 31 mart 'da 16 Mart' da 2:49 'də verildi

Statik funksiyasında bir dəyişən bəyan edirsinizsə, funksiyası funksiya çağırış yığınında saxlanıla bilməz və funksiyanı yenidən çağırdığınızda mövcud olacaq.

Qlobal dəyişən statik elan edərsəniz, onun sahəsi elan etdiyiniz faylda məhdudlaşdırılacaq. Proqramınız boyunca oxumaq və dəyişdirilə bilən müntəzəm qlobal birdən daha təhlükəsizdir.

5
21 февр. cavab 21 fevral tarixində Sam Lough tərəfindən verilir . 2009-02-21 09:52 '09 saat 09:52 'da 2009-02-21 09:52

C-də statik istifadə mənbəyinə görə iki mənaya malikdir. Ümumdünya, bir obyekt fayl səviyyəsində elan edildikdə, bu, bu obyektin yalnız bu faylın içərisində göstərildiyi anlamına gəlir.

Başqa bir sahədə, müəyyən bir sahənin daxil olduğu müxtəlif vaxtlar arasında dəyərini saxlayacaq bir obyekt elan edir. Məsələn, int bir prosedurun içində işlənirsə:

 void procedure(void) { static int i = 0; i++; } 

prosedur ilk dəfə çağırıldığı zaman "i" nin dəyəri sıfıra sıfırlanır və hər bir prosedur çağırıldığında dəyəri saxlanır. "i" yazıldıysa, 0, 1, 2, 3, ...

5
21 февр. cavab 21 fevralda Gary tərəfindən verilir. 2009-02-21 10:20 '09 at 10:20 'da 2009-02-21 10:20

Əgər bunu mytest.c faylında bildirirsinizsə:

 static int my_variable; 

Sonra bu dəyişən yalnız bu fayldan görünə bilər. Dəyişən hər hansı bir yerdə ixrac edilə bilməz.

Bir funksiyanın içərisində bəyan edirsinizsə, dəyişənin dəyəri funksiyanı hər dəfə çağırdıqda dəyərini saxlayacaqdır.

Statik funksiya faylın kənarından ixrac edilə bilməz. Buna görə statik olaraq elan etdiyiniz halda * .c faylında funksiyaları və dəyişənləri gizlədin.

4
11 марта '09 в 13:47 2009-03-11 13:47 cavab 11 avqust 2009-ci il tarixində 13:47 tarixində verilmişdir. 2009-03-11 13:47

Funksiyalardakı statik dəyişənlərin ilk olaraq bu funksiyaya daxil olduqda və onların zəngləri başa çatdıqdan sonra da saxlanıldığını qeyd etmək vacibdir; özyinelemeli funksiyalar halında, statik dəyişən yalnız bir dəfə başlayır və bütün recursive çağırışlarında və hətta funksiya çağırışından sonra da saxlanılır.

Bir dəyişən bir funksiyanın xaricində yaradılıbsa, bu proqramçı yalnız dəyişən olaraq elan edilmiş qaynaq faylında dəyişən istifadə edə biləcəyini bildirir.

3
01 мая '14 в 9:30 2014-05-01 09:30 cavab 01 aprel '14, 9:30 'da Starhowl verilir 2014-05-01 09:30

Statik bir dəyişən funksiyadan istifadə edə biləcəyiniz xüsusi bir dəyişəndir və zənglər arasında məlumatları saxlayır və zənglər arasında silmir. Məsələn:

 void func(){ static int count; // If you don't declare its value, the value automatically initializes to zero printf("%d, ", count); count++; } void main(){ while(true){ func(); } } 

Çıxış:

0, 1, 2, 3, 4, 5, ...

2
22 дек. Cavab Yagel 22 dekabr. 2014-12-22 00:59 '14 'də 0:59 2014-12-22 00:59

C-də statik dəyişənlər bir proqram ömrü var.

Bir funksiyada müəyyənləşdirildikləri təqdirdə, onlar yerli əhatə dairəsinə malikdirlər, yəni bu funksiyaların içərisinə daxil edilə bilərlər. Statik dəyişənlərin dəyəri funksiya çağırışları arasında saxlanılır.

Məsələn:

 void function() { static int var = 1; var++; printf("%d", var); } int main() { function(); // Call 1 function(); // Call 2 } 

Yuxarıdakı proqramda, var məlumat seqmentində saxlanılır. Onun ömrü bütün C proqramıdır.

1 funksiyasını var sonra var olur. 2 funksiyasını var sonra var 3 olur.

var dəyəri funksiya çağırışları arasında məhv edilmir.

var qeyri-stasionar və yerli dəyişən olsaydı, proqram C yığım seqmentində saxlanıla bilər. Funksiyanın yığın çərçivəsi funksiyanı geri qaytardıqdan sonra məhv olduğundan, var dəyəri da azalır.

Başlanğıc statik dəyişənlər C proqramının məlumat seqmentində saxlanılır, BSS seqmentində başlanğıcsız dəyişənlər saxlanılır.

Digər statik məlumatlar: əgər bir dəyişən qlobal və statik olsa, C proqramının ömrü var, ancaq onun miqyası vardır. Yalnız bu faylda görünür.

Aşağıdakıları sınayın:

file1.c

 static int x; int main() { printf("Accessing in same file%d", x): } 

file2.c

  extern int x; func() { printf("accessing in different file %d",x); // Not allowed, x has the file scope of file1.c } run gcc -c file1.c gcc -c file2.c 

İndi onları bağlamağa cəhd edin:

 gcc -o output file1.o file2.o 

Bu, linker səhvini verəcəkdir, çünki x, file1.c əhatəsinə malikdir və linker fayl 2.c.də istifadə olunan x dəyişəninə istinad etməyəcəkdir.

Ədəbiyyat:

2
21 марта '15 в 20:08 2015-03-21 20:08 Cavab Sahil Mançanda tərəfindən 21 Mart '15 'də saat 20:08' də verilir. 2015-03-21 20:08

Qeyd etmək lazımdır ki, static 4 müxtəlif yolla istifadə edilə bilər.

 to create permanent storage for local variables in a function. to specify internal linkage. to declare member functions that act like non-member functions. to create a single copy of a data member. 
2
07 янв. cənab Jan 07 ' ye cavab verilir 2016-01-07 02:03 '16 'da 2:03' də 2016-01-07 02:03

2 vəziyyət var:

(1) static elan edilən yerli dəyişənlər: yığın yerinə məlumat seqmentinə ayrılırlar. Funksiyası yenidən çağırıldığında dəyəri saxlanılır.

(2) Qlobal dəyişənlər və static elan edilmiş funksiyalar: Görünməz xarici tərtib vahidi (yəni, bağlama zamanı simvol masasında yerli simvollar).

1
03 июня '18 в 16:01 2018-06-03 16:01 Cavab Jonny Kong tərəfindən 03 İyun 18 ' da saat 04:01' də 2018-06-03 16:01 'də verilir

Dəyişənin statik dəyəri müxtəlif funksiya çağırışları arasında saxlanılır və sahə məhdud məhduddur. Statik var hər zaman 0

1
23 марта '14 в 8:48 2014-03-23 08:48 Cavab, 23 Mart 'da Jonathon tərəfindən 8:48' də veriləcək 2014-03-23 ​​08:48

bubblesort nümunəsini izah etmək bubblesort . Burada necə işlədiyini görə bilərsiniz. Statik değişkenleri birdən çox mövzu halında kullanırken dikkatli olmasına baxmayaraq, statik değişkenler yararlıdır. Məsələn, statik bir dəyişən funksional çağırışlar arasında daxili vəziyyət məlumatını ehtiva edə bilər.

bubblesort.c adlanan bir xüsusiyyət göstərir, həm də edilən dəyişikliklərin sayını izləmək üçün dəstək funksiyaları ilə birlikdə. count dəyişən statik saxlama sinfi var, çünki hər hansı blokun xaricində elan edilir. Statik müəyyən edən bu dəyişənin məcburi bağlanmasına səbəb olur və count dəyişəninə bubblesort.c başqa bir funksiyaya birbaşa daxil edilə bilməz. clearcount funksiyası və clearcount funksiyasındaki mübadilə count dəyişən yeganə kod bölmələridir. İnterkom bubblesort.c ilə əlaqəli digər faylları bu faylda tam count müdaxilə etmədən identifikator, bubblesort.c istifadə etməyə imkan verir.

Üç funksiyadan clearcount , getcountbubblesort xarici əlaqələrə malikdir və kənardan əldə edilə bilər. Qeyd edək ki, onepass üçün statik təsnifat bu funksiyaya bu daxili bağlama verir, belə ki, bu faylın xaricindən istifadə edilə bilməz. Müvafiq saxlama və məcburi siniflərdən istifadə edərək, bubblesort onun həyata keçirilməsinin detallarını zəng bubblesort gizlədir.

bubblesort.c

Bir tamsayı dizisini sıralayan və prosesdə edilən mübadilələrin sayını nəzərə alan funksiya.

 static int count = 0; static int onepass(int a[], int n) {  int i; int interchanges = 0; int temp; for (i = 0; i < n - 1; i++) if (a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; interchanges = 1; count++; } return interchanges; } void clearcount(void) { count = 0; } int getcount(void) { return count; } void bubblesort(int a[], int n) {  int i; for (i = 0; i < n - 1; i++) if (!onepass(a, n - i)) break; } 

bubblesorttest.c

 #include <stdio.h> #define ARRAYSIZE 10 void bubblesort(int a[], int n); int getcount(); int main(void) { int i; int a[ARRAYSIZE]; printf("Enter %d integers to sort\n", ARRAYSIZE); for (i = 0; i < ARRAYSIZE; i++) scanf("%d", a+i); printf("Array follows:\n"); for (i = 0;i < ARRAYSIZE; i++) printf("%2d: %4d\n", i, a[i]); bubblesort(a, ARRAYSIZE); printf("Sorted array follows:\n"); for (i = 0; i < ARRAYSIZE; i++) printf("%2d: %4d\n", i, a[i]); printf("Number of ineterchanges: %d\n", getcount()); return 0; } 

Bubblesort.c- də hər bir obyekt və funksiya üçün, lazım olduğu hallarda kassa və anker sinfi daxil olun.

Cavab:

Функция onepass имеет внутреннюю связь. Другие функции внешняя связь. Функции не имеют класса хранения. count идентификатор имеет внутреннюю связь и статическое хранилище. Все остальные переменные не имеют привязки и автоматического хранения.

Источник: UNIX Systems Programming: Communication, Concurrency и Threads 2nd Edition, Kay Robbins и Steven Robbins

0
ответ дан snr 04 дек. '17 в 16:18 2017-12-04 16:18

вы также можете ставить методы и переменные, чтобы их можно использовать с использованием имени класса без создания объекта в другом классе.

Bir nümunədir

 public class Temperature { public static double CelsiusToFahrenheit(string temperatureCelsius) { // Convert argument to double for calculations. double celsius = Double.Parse(temperatureCelsius); // Convert Celsius to Fahrenheit. double fahrenheit = (celsius * 9 / 5) + 32; return fahrenheit; } } class Converter { void Main() { double F= Temperature.CelsiusToFahrenheit(78); Console.WriteLine("Temperature in Fahrenheit: {0:F2}", F); } } 
-1
ответ дан yash darak 04 дек. '17 в 16:18 2017-12-04 16:18

Другие вопросы по меткам или Задайте вопрос