คำถามติดแท็ก static

คงที่เป็นคำที่ใช้ในภาษาการเขียนโปรแกรมบางอย่างเพื่อกำหนดฟังก์ชั่นหรือพื้นที่จัดเก็บข้อมูล (ฟิลด์) ที่ไม่ผูกพันกับอินสแตนซ์ของวัตถุที่เฉพาะเจาะจง ในกรณีส่วนใหญ่แท็กนี้หากใช้ควรใช้ร่วมกับแท็กภาษาการเขียนโปรแกรมเฉพาะ

21
วิธีการช่วยเหลือส่วนตัวควรจะคงที่หากพวกเขาสามารถคงที่
สมมติว่าฉันมีคลาสที่ออกแบบมาให้เป็นอินสแตนซ์ ฉันมีวิธีการ "ผู้ช่วย" ส่วนตัวหลายอย่างในชั้นเรียนที่ไม่ต้องการการเข้าถึงสมาชิกของชั้นเรียนใด ๆ และดำเนินการกับข้อโต้แย้งของพวกเขา แต่เพียงผู้เดียวและส่งกลับผลลัพธ์ public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } มีเหตุผลใดที่ต้องระบุcomputeOneและใช้computeMoreเป็นวิธีการคงที่ - หรือเหตุผลเฉพาะใด ๆ ที่จะไม่ทำ? …

4
เรียกใช้วิธีการคงที่โดยใช้การสะท้อน
ฉันต้องการที่จะเรียกใช้mainวิธีการซึ่งเป็นแบบคงที่ ฉันได้รับประเภทของวัตถุClassแต่ฉันไม่สามารถสร้างตัวอย่างของคลาสนั้นและยังไม่สามารถเรียกใช้staticเมธอดmainได้
199 java  reflection  static 

9
คำหลักคงที่และการใช้งานที่หลากหลายใน C ++
คำหลักstaticคือคำที่มีความหมายหลายอย่างใน C ++ ที่ฉันพบว่าสับสนมากและฉันไม่สามารถงอใจได้ว่ามันควรจะทำงานอย่างไร จากสิ่งที่ฉันเข้าใจมีstaticระยะเวลาการจัดเก็บข้อมูลซึ่งหมายความว่ามันมีอายุการใช้งานของโปรแกรมในกรณีของโลก แต่เมื่อคุณพูดถึงท้องถิ่นก็หมายความว่ามันเริ่มต้นเป็นศูนย์โดยค่าเริ่มต้น C ++ Standard กล่าวสิ่งนี้สำหรับสมาชิกคลาสข้อมูลที่มีคีย์เวิร์ดstatic: 3.7.1 ระยะเวลาการจัดเก็บแบบคงที่ [basic.stc.static] 3 คำสำคัญคงที่สามารถใช้ในการประกาศตัวแปรท้องถิ่นที่มีระยะเวลาการจัดเก็บแบบคงที่ 4 สแตติกคำสำคัญที่ใช้กับสมาชิกคลาสข้อมูลในคำจำกัดความคลาสให้ระยะเวลาการเก็บข้อมูลสมาชิกแบบคงที่ มันหมายความว่าอะไรกับตัวแปรท้องถิ่น ? นั่นคือฟังก์ชั่นตัวแปรท้องถิ่น? เพราะมันยังมีที่เมื่อคุณประกาศฟังก์ชั่นในท้องถิ่นstaticว่ามันจะเริ่มต้นเพียงครั้งเดียวครั้งแรกที่มันเข้าสู่ฟังก์ชั่นนี้ นอกจากนี้ยังพูดถึงระยะเวลาในการจัดเก็บเฉพาะสมาชิกชั้นเรียนว่าเป็นเรื่องที่ไม่เฉพาะเจาะจงซึ่งเป็นคุณสมบัติที่staticไม่ หรือว่าเป็นระยะเวลาการเก็บรักษา? ตอนนี้สิ่งที่เกี่ยวกับกรณีที่มีstaticและขอบเขตไฟล์? ตัวแปรส่วนกลางทั้งหมดถูกพิจารณาว่ามีระยะเวลาการเก็บแบบสแตติกตามค่าเริ่มต้นหรือไม่ ดูเหมือนว่าต่อไปนี้ (จากส่วน 3.7.1) ดังต่อไปนี้: 1 ตัวแปรทั้งหมดที่ไม่มีระยะเวลาการจัดเก็บแบบไดนามิกไม่มีระยะเวลาการจัดเก็บด้ายและไม่ท้องถิ่นมีระยะเวลาการจัดเก็บแบบคงที่ ที่เก็บข้อมูลสำหรับเอนทิตีเหล่านี้จะคงอยู่ตลอดระยะเวลาของโปรแกรม (3.6.2, 3.6.3) วิธีการที่ไม่staticเกี่ยวข้องกับการเชื่อมโยงของตัวแปร? staticคำหลักทั้งหมดนี้ทำให้เกิดความสับสนอย่างจริงจังใครบางคนสามารถอธิบายการใช้ภาษาอังกฤษที่แตกต่างกันและบอกฉันเมื่อใดที่จะเริ่มstaticสมาชิกคลาส?
196 c++  static 

2
ตัวแปร constexpr แบบคงที่ภายในฟังก์ชั่นเหมาะสมหรือไม่?
ถ้าฉันมีตัวแปรภายในฟังก์ชั่น (พูดเป็นอาร์เรย์ขนาดใหญ่) มันทำให้รู้สึกถึงการประกาศมันทั้งสองstaticและconstexpr? constexprรับประกันได้ว่าอาร์เรย์จะถูกสร้างขึ้นในเวลารวบรวมดังนั้นจะstaticไร้ประโยชน์หรือไม่? void f() { static constexpr int x [] = { // a few thousand elements }; // do something with the array } เป็นstaticสิ่งที่ทำจริงมีในแง่ของการสร้างรหัสหรือความหมาย?
193 c++  static  c++11  constexpr 

5
อินสแตนซ์ของคลาสแบบคงที่ไม่ซ้ำกับคำขอหรือเซิร์ฟเวอร์ใน ASP.NET หรือไม่
บนเว็บไซต์ ASP.NET มีคลาสสแตติกที่ไม่ซ้ำกันสำหรับแต่ละคำขอของเว็บหรือพวกมันจะถูกสร้างอินสแตนซ์เมื่อใดก็ตามที่จำเป็นและ GCed เมื่อใดก็ตามที่ GC ตัดสินใจที่จะกำจัดพวกเขา? เหตุผลที่ฉันถามก็เพราะฉันได้เขียนบางคลาสคงที่ก่อนใน C # และพฤติกรรมที่แตกต่างกว่าที่ฉันคาดไว้ ฉันคาดหวังว่าคลาสสแตติกจะไม่ซ้ำกันในแต่ละคำขอ แต่ดูเหมือนจะไม่เป็นเช่นนั้น หากพวกเขาไม่ซ้ำกันในแต่ละคำขอมีวิธีที่จะอนุญาตให้พวกเขาเป็น? ปรับปรุง: คำตอบ driis ให้ฉันเป็นสิ่งที่ฉันต้องการ ฉันใช้คลาสเดี่ยวอยู่แล้ว แต่มันใช้อินสแตนซ์แบบคงที่และดังนั้นจึงถูกแชร์ระหว่างคำขอแม้ว่าผู้ใช้จะแตกต่างกันซึ่งในกรณีนี้เป็นสิ่งที่ไม่ดี การใช้HttpContext.Current.Itemsแก้ปัญหาของฉันได้อย่างสมบูรณ์แบบ สำหรับทุกคนที่สะดุดกับคำถามนี้ในอนาคตนี่คือการนำไปปฏิบัติของฉันง่ายและสั้นลงเพื่อให้เข้าใจรูปแบบได้ง่าย: using System.Collections; using System.Web; public class GloballyAccessibleClass { private GloballyAccessibleClass() { } public static GloballyAccessibleClass Instance { get { IDictionary items = HttpContext.Current.Items; if(!items.Contains("TheInstance")) { items["TheInstance"] = new …
182 c#  asp.net  static 

9
"วิธีการคงที่" ใน C # คืออะไร
หมายความว่าอย่างไรเมื่อคุณเพิ่มคำหลักแบบคงที่ให้กับวิธีการ public static void doSomething(){ //Well, do something! } คุณสามารถเพิ่มstaticคำหลักลงในคลาสได้หรือไม่ ถ้าเช่นนั้นจะหมายความว่าอย่างไร
177 c#  methods  static 

22
ตัวสร้างแบบคงที่ใน C ++? ฉันต้องเริ่มต้นวัตถุคงที่ส่วนตัว
ฉันต้องการคลาสที่มีสมาชิกข้อมูลสแตติกส่วนตัว (เวกเตอร์ที่มีอักขระ az ทั้งหมด) ใน java หรือ C # ฉันสามารถสร้าง "static constructor" ที่จะทำงานก่อนที่ฉันจะสร้างอินสแตนซ์ของคลาสและตั้งค่าสมาชิกข้อมูลคงที่ของคลาส มันถูกเรียกใช้เพียงครั้งเดียว (เนื่องจากตัวแปรถูกอ่านอย่างเดียวและจำเป็นต้องตั้งค่าเพียงครั้งเดียว) และเนื่องจากเป็นฟังก์ชันของคลาสจึงสามารถเข้าถึงสมาชิกส่วนตัวได้ ฉันสามารถเพิ่มโค้ดใน Constructor ที่ตรวจสอบเพื่อดูว่าเวกเตอร์เริ่มต้นได้หรือไม่และเริ่มต้นถ้าไม่ใช่ แต่แนะนำการตรวจสอบที่จำเป็นมากมายและดูเหมือนจะไม่เป็นทางออกที่ดีที่สุดสำหรับปัญหา ความคิดเกิดขึ้นกับฉันว่าเนื่องจากตัวแปรจะอ่านได้อย่างเดียวพวกเขาสามารถเป็น const คงที่แบบสาธารณะดังนั้นฉันจึงสามารถตั้งค่าพวกเขาอีกครั้งนอกชั้นเรียน แต่อีกครั้งดูเหมือนว่าแฮ็คที่น่าเกลียด เป็นไปได้หรือไม่ที่จะมีสมาชิกข้อมูลสแตติกส่วนตัวในชั้นเรียนหากฉันไม่ต้องการเริ่มต้นพวกเขาใน Constructor อินสแตนซ์?

3
เรียกวิธีการคงที่จากวิธีการเรียน ES6 ปกติ
วิธีมาตรฐานในการเรียกใช้วิธีการคงที่คืออะไร ฉันสามารถคิดถึงการใช้constructorหรือใช้ชื่อของคลาสเองฉันไม่ชอบอันหลังเพราะมันไม่จำเป็น อดีตเป็นวิธีที่แนะนำหรือมีอย่างอื่นอีกหรือไม่ นี่คือตัวอย่าง (contrived): class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }


13
ฉันจะรับเนื้อหาทรัพยากรจากบริบทแบบคงที่ได้อย่างไร
ฉันต้องการอ่านสตริงจากxmlไฟล์ก่อนที่ฉันจะทำอะไรอื่น ๆ อีกมากมายเช่นsetTextในวิดเจ็ตดังนั้นฉันจะทำสิ่งนั้นโดยไม่ต้องเรียกใช้ออบเจ็กต์กิจกรรมได้getResources()อย่างไร

4
ดึงฟิลด์คงที่เท่านั้นที่ประกาศในคลาส Java
ฉันมีชั้นเรียนต่อไปนี้: public class Test { public static int a = 0; public int b = 1; } เป็นไปได้หรือไม่ที่จะใช้การสะท้อนเพื่อรับรายการของฟิลด์คงที่เท่านั้น? Test.class.getDeclaredFields()ฉันรู้ฉันจะได้รับอาร์เรย์ของฟิลด์ทั้งหมดที่มี แต่ดูเหมือนว่าไม่มีวิธีการตรวจสอบว่าFieldอินสแตนซ์เป็นตัวแทนของสนามคงที่หรือไม่
163 java  reflection  static  field 

9
Stack, Static และ Heap ใน C ++
ฉันค้นหาแล้ว แต่ฉันไม่เข้าใจแนวคิดทั้งสามนี้เป็นอย่างดี ฉันต้องใช้การจัดสรรแบบไดนามิกเมื่อใด (ในฮีป) และประโยชน์ที่แท้จริงของมันคืออะไร ปัญหาของการเกิดไฟฟ้าสถิตย์และกองซ้อนคืออะไร? ฉันสามารถเขียนแอปพลิเคชันทั้งหมดโดยไม่จัดสรรตัวแปรในฮีปได้ไหม ฉันได้ยินมาว่าภาษาอื่น ๆ รวม "ผู้รวบรวมขยะ" ดังนั้นคุณไม่ต้องกังวลเกี่ยวกับความทรงจำ ที่เก็บขยะทำอะไร? คุณสามารถจัดการกับหน่วยความจำด้วยตัวเองได้อย่างไรโดยที่คุณไม่สามารถใช้ตัวเก็บขยะนี้ได้ เมื่อมีคนพูดกับฉันว่าด้วยการประกาศนี้: int * asafe=new int; ฉันมี "ตัวชี้ไปยังตัวชี้" มันหมายความว่าอะไร? มันแตกต่างจาก: asafe=new int; ?

4
ตัวแปรสแตติกในฟังก์ชันสมาชิก
ใครช่วยกรุณาอธิบายว่าตัวแปรสแตติกในฟังก์ชันสมาชิกทำงานใน C ++ ได้อย่างไร รับคลาสต่อไปนี้: class A { void foo() { static int i; i++; } } หากฉันประกาศหลายอินสแตนซ์การAเรียกfoo()ใช้อินสแตนซ์หนึ่งเพิ่มตัวแปรสแตติกiในทุกอินสแตนซ์หรือไม่ หรือเพียงอันเดียวที่ถูกเรียกใช้? ฉันสันนิษฐานว่าแต่ละอินสแตนซ์จะมีสำเนาของตัวเองiแต่ก้าวผ่านโค้ดบางอย่างฉันดูเหมือนจะบ่งบอกเป็นอย่างอื่น
158 c++  static  scope 

19
การใช้ตัวแปรแบบคงที่ส่วนตัวใน Java คืออะไร?
ถ้าตัวแปรถูกประกาศเป็นแล้วผมสามารถเข้าถึงได้จากทุกที่public static varName; ClassName.varNameฉันยังทราบว่าสมาชิกแบบคงที่จะถูกใช้ร่วมกันโดยอินสแตนซ์ทั้งหมดของคลาสและไม่ได้ถูกจัดสรรใหม่ในแต่ละอินสแตนซ์ การประกาศตัวแปรprivate static varName;แตกต่างจากการประกาศตัวแปรprivate varName;หรือไม่? ในทั้งสองกรณีมันไม่สามารถเข้าถึงได้เป็นClassName.varNameหรือเป็นClassInstance.varNameจากชั้นอื่น ๆ การประกาศตัวแปรเป็นแบบสแตติกให้คุณสมบัติพิเศษอื่น ๆ หรือไม่

7
ความแตกต่างระหว่างสุดท้ายคงที่และสุดท้ายคงที่
ฉันพบรหัสที่มันประกาศรหัสเช่น private final static String API_RTN_SUCCESS = "0"; private final static String API_RTN_ERROR = "1"; public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config"; public static final String STARTUP_SETTING_KEY = "startup_setting"; ความแตกต่างระหว่างพวกเขาหรือพวกเขาเหมือนกันคืออะไร? หรือไม่ก็แตกต่างกันprivateหรือpublic?
151 java  static  final 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.