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

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

5
แก้ไข / ดูตัวแปรคงที่ในขณะที่ดีบักใน Eclipse
ตามคำถาม. ในมุมมองการแก้ไขจุดบกพร่องมีกรอบตัวแปร แสดงค่าทั้งหมดของตัวแปรสมาชิกของอ็อบเจ็กต์ปัจจุบันและตัวแปรโลคัลทั้งหมด แต่จะไม่แสดงตัวแปรคงที่ของคลาสของอ็อบเจ็กต์ ฉันจะไปถึงสิ่งเหล่านี้ได้อย่างไร googling บางตัวแนะนำให้ฉันกดปุ่มบนแถบเครื่องมือ แต่ไม่มีอะไรบนแถบเครื่องมือของกรอบตัวแปรยกเว้น "แสดงชื่อประเภท" "โครงสร้างตรรกะ" และ "ยุบทั้งหมด" (Eclipse 3.4.2) คำแนะนำใด ๆ?

1
การจัดสรรแบบคงที่ใน java - heap, stack และการสร้างแบบถาวร
เมื่อเร็ว ๆ นี้ฉันได้อ่านเกี่ยวกับรูปแบบการจัดสรรหน่วยความจำใน java มากและมีข้อสงสัยมากมายเนื่องจากฉันได้อ่านจากแหล่งต่างๆ ฉันได้รวบรวมแนวคิดของฉันแล้วและฉันจะขออ่านทุกประเด็นและแสดงความคิดเห็นเกี่ยวกับพวกเขา ฉันรู้มาว่าการจัดสรรหน่วยความจำเป็นเฉพาะ JVM ดังนั้นฉันต้องบอกไว้ก่อนว่าคำถามของฉันเป็นคำถามเฉพาะของ Sun คลาส (โหลดโดย classloaders) ไปในพื้นที่พิเศษบนฮีป: การสร้างแบบถาวร ข้อมูลทั้งหมดที่เกี่ยวข้องกับคลาสเช่นชื่อคลาสอาร์เรย์อ็อบเจ็กต์ที่เกี่ยวข้องกับคลาสอ็อบเจ็กต์ภายในที่ใช้โดย JVM (เช่น java / lang / Object) และข้อมูลการปรับให้เหมาะสมจะเข้าสู่พื้นที่การสร้างแบบถาวร ตัวแปรสมาชิกคงที่ทั้งหมดจะถูกเก็บไว้ในพื้นที่การสร้างแบบถาวรอีกครั้ง วัตถุไปกองที่แตกต่างกัน: คนรุ่นใหม่ มีเพียงหนึ่งสำเนาของแต่ละวิธีต่อคลาสเท่านั้นไม่ว่าจะเป็นวิธีการแบบคงที่หรือไม่คงที่ สำเนานั้นใส่ไว้ในพื้นที่การสร้างแบบถาวร สำหรับวิธีการที่ไม่คงที่พารามิเตอร์และตัวแปรโลคัลทั้งหมดจะเข้าสู่สแต็กและเมื่อใดก็ตามที่มีการเรียกใช้เมธอดนั้นอย่างเป็นรูปธรรมเราจะได้สแต็กเฟรมใหม่ที่เชื่อมโยงกับมัน ฉันไม่แน่ใจว่าตัวแปรโลคัลของวิธีคงที่ถูกเก็บไว้ที่ไหน พวกเขาอยู่ในกองของการสร้างแบบถาวรหรือไม่? หรือเพียงข้อมูลอ้างอิงถูกเก็บไว้ในพื้นที่การสร้างแบบถาวรและสำเนาจริงอยู่ที่อื่น (ที่ไหน?) ฉันยังไม่แน่ใจด้วยว่าประเภทการส่งคืนของเมธอดจะถูกเก็บไว้ที่ใด หากออบเจ็กต์ (ในรุ่นเยาว์) จำเป็นต้องใช้สมาชิกแบบคงที่ (ในรุ่นถาวร) พวกเขาจะได้รับการอ้างอิงถึงสมาชิกแบบคงที่ && พวกเขาจะได้รับพื้นที่หน่วยความจำเพียงพอที่จะจัดเก็บประเภทการส่งคืนของวิธีการ ฯลฯ ขอบคุณสำหรับสิ่งนี้!

2
การใช้ Server.MapPath () ภายในฟิลด์แบบคงที่ใน ASP.NET MVC
ฉันกำลังสร้างไซต์ ASP.NET MVC ที่ฉันใช้ Lucene.Net สำหรับการค้นหา ฉันถามคำถามที่นี่เกี่ยวกับวิธีจัดโครงสร้างการใช้งาน Lucene.Net ในแอปพลิเคชัน ASP.NET MVC อย่างถูกต้องและได้รับแจ้งว่าวิธีที่ดีที่สุดคือการประกาศ my IndexWriteras public staticเพื่อให้สามารถใช้ซ้ำได้ นี่คือรหัสบางส่วนที่อยู่ด้านบนของ SearchController ของฉัน: public static string IndexLocation = Server.MapPath("~/lucene"); public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(); public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer); เมื่อwriterเป็นแบบคงที่IndexLocationจะต้องเป็นแบบคงที่ ดังนั้นคอมไพเลอร์จึงให้ข้อผิดพลาดต่อไปนี้สำหรับServer.MapPath(): จำเป็นต้องมีการอ้างอิงออบเจ็กต์สำหรับฟิลด์วิธีหรือคุณสมบัติที่ไม่คงที่ 'System.Web.Mvc.Controller.Server.get' มีวิธีการใช้ Server.MapPath () หรือสิ่งที่คล้ายกันจากฟิลด์แบบคงที่หรือไม่? ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร?

5
เหตุใดฉันจึงไม่สามารถเริ่มต้นสมาชิกแบบคงที่ที่ไม่ใช่ const หรืออาร์เรย์แบบคงที่ในคลาสได้
เหตุใดฉันจึงไม่สามารถเริ่มต้นstaticสมาชิกที่ไม่ใช่ const หรือstaticอาร์เรย์ในคลาสได้ class A { static const int a = 3; static int b = 3; static const int c[2] = { 1, 2 }; static int d[2] = { 1, 2 }; }; int main() { A a; return 0; } คอมไพเลอร์ออกข้อผิดพลาดต่อไปนี้: g++ main.cpp main.cpp:4:17: error: ISO C++ …
116 c++  static  const 

3
การเริ่มต้นคลาสแบบคงที่จะเกิดขึ้นเมื่อใด
ฟิลด์คงที่จะเริ่มต้นเมื่อใด ถ้าฉันไม่เคยสร้างอินสแตนซ์ของคลาส แต่ฉันเข้าถึงฟิลด์แบบคงที่บล็อกแบบคงที่และวิธีการคงที่ส่วนตัวทั้งหมดจะใช้เพื่อสร้างอินสแตนซ์ฟิลด์สแตติกส่วนตัวที่เรียกว่า (ตามลำดับ) ในทันทีนั้นหรือไม่ จะเกิดอะไรขึ้นถ้าฉันเรียกวิธีการแบบคงที่? มันยังเรียกใช้บล็อกคงที่ทั้งหมดหรือไม่ ก่อนวิธี?

7
คำหลัก "คงที่" ภายในฟังก์ชัน?
ฉันกำลังดูแหล่งที่มาของ Drupal 7 และฉันพบบางสิ่งที่ฉันไม่เคยเห็นมาก่อน ฉันได้หาข้อมูลเบื้องต้นในคู่มือ php แต่ไม่ได้อธิบายตัวอย่างเหล่านี้ ไม่คำหลักอะไรstaticทำเพื่อตัวแปรภายในฟังก์ชันได้หรือไม่ function module_load_all($bootstrap = FALSE) { static $has_run = FALSE
110 php  function  static  keyword 

8
วิธีรับคุณสมบัติคงที่ด้วยการสะท้อนกลับ
ดูเหมือนจะค่อนข้างธรรมดา แต่ฉันไม่สามารถใช้งานได้ ฉันมีวัตถุและฉันใช้การสะท้อนเพื่อไปยังสมบัติสาธารณะ หนึ่งในคุณสมบัติเหล่านี้เป็นแบบคงที่และฉันไม่มีโชคที่จะได้รับมัน Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo Return obj.GetType.GetProperty(propName) End Function โค้ดด้านบนใช้งานได้ดีสำหรับคุณสมบัติอินสแตนซ์สาธารณะซึ่งจนถึงตอนนี้คือทั้งหมดที่ฉันต้องการ สมมติว่าฉันสามารถใช้ BindingFlags เพื่อขอคุณสมบัติประเภทอื่น ๆ ได้ (ส่วนตัวแบบคงที่) แต่ดูเหมือนจะไม่พบชุดค่าผสมที่เหมาะสม Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo Return obj.GetType.GetProperty(propName, Reflection.BindingFlags.Static Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public) End Function แต่ถึงกระนั้นการร้องขอให้สมาชิก …
109 .net  reflection  static 

9
ตัวปรับคงที่มีผลต่อรหัสนี้อย่างไร?
นี่คือรหัสของฉัน: class A { static A obj = new A(); static int num1; static int num2=0; private A() { num1++; num2++; } public static A getInstance() { return obj; } } public class Main{ public static void main(String[] arg) { A obj = A.getInstance(); System.out.println(obj.num1); System.out.println(obj.num2); } } ผลลัพธ์คือ1 0แต่ฉันไม่เข้าใจ …
109 java  static 

7
การกำหนดสมาชิกคงที่ const จำนวนเต็มในนิยามคลาส
ความเข้าใจของฉันคือ C ++ อนุญาตให้กำหนดสมาชิก const แบบคงที่ภายในคลาสได้ตราบใดที่เป็นประเภทจำนวนเต็ม เหตุใดรหัสต่อไปนี้จึงทำให้ฉันมีข้อผิดพลาดตัวเชื่อมโยง? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout << test::N << "\n"; std::min(9, test::N); } ข้อผิดพลาดที่ฉันได้รับคือ: test.cpp:(.text+0x130): undefined reference to `test::N' collect2: ld returned 1 exit status ที่น่าสนใจคือถ้าฉันแสดงความคิดเห็นเกี่ยวกับการเรียกไปที่ std :: min โค้ดจะคอมไพล์และลิงก์ได้ดี …

6
php ฟังก์ชันคงที่
ฉันมีคำถามเกี่ยวกับฟังก์ชันคงที่ใน php สมมติว่าฉันมีคลาส class test { public function sayHi() { echo 'hi'; } } ถ้าฉันtest::sayHi();ใช้งานได้โดยไม่มีปัญหา class test { public static function sayHi() { echo 'hi'; } } test::sayHi(); ทำงานได้เช่นกัน อะไรคือความแตกต่างระหว่างชั้นหนึ่งและชั้นสอง? มีอะไรพิเศษเกี่ยวกับฟังก์ชันคงที่?
108 php  class  static  member 

10
วิธีการเริ่มต้นแผนที่ const คงที่ส่วนตัวใน C ++?
ฉันต้องการเพียงแค่พจนานุกรมหรืออาเรย์=>stringint มีประเภทแผนที่ C ++ สำหรับกรณีนี้ แต่ฉันต้องการอินสแตนซ์สำหรับแผนที่เดียวเท่านั้น (-> คงที่) และแผนที่นี้ไม่สามารถเปลี่ยนแปลงได้ (-> const); ฉันพบวิธีนี้แล้วกับไลบรารีที่เพิ่มขึ้น std::map<int, char> example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); มีวิธีอื่นที่ไม่มี lib นี้หรือไม่? ฉันได้ลองสิ่งนี้แล้ว แต่มักจะมีปัญหาบางอย่างเกี่ยวกับการเริ่มต้นแผนที่ class myClass{ private: static map<int,int> create_map() { map<int,int> m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map<int,int> …

13
การใช้ตัวแปรคงที่ใน C # คืออะไร? ควรใช้เมื่อใด เหตุใดฉันจึงไม่สามารถประกาศตัวแปรคงที่ภายในวิธีการ?
ฉันได้ค้นหาเกี่ยวกับตัวแปรคงที่ใน C # แต่ฉันยังไม่เข้าใจว่ามันใช้อะไร นอกจากนี้หากฉันพยายามประกาศตัวแปรภายในเมธอดมันจะไม่อนุญาตให้ฉันทำสิ่งนี้ ทำไม? ฉันได้เห็นตัวอย่างบางส่วนเกี่ยวกับตัวแปรคงที่ ฉันเห็นแล้วว่าเราไม่จำเป็นต้องสร้างอินสแตนซ์ของคลาสเพื่อเข้าถึงตัวแปร แต่นั่นก็ไม่เพียงพอที่จะเข้าใจว่ามันใช้อะไรและควรใช้เมื่อใด สิ่งที่สอง class Book { public static int myInt = 0; } public class Exercise { static void Main() { Book book = new Book(); Console.WriteLine(book.myInt); // Shows error. Why does it show me error? // Can't I access the static variable …

1
เรียกวิธีการทั่วไปแบบคงที่
ฉันเจอสถานการณ์ที่น่าสงสัยเกี่ยวกับวิธีการทั่วไปแบบคงที่ นี่คือรหัส: class Foo<E> { public static <E> Foo<E> createFoo() { // ... } } class Bar<E> { private Foo<E> member; public Bar() { member = Foo.createFoo(); } } ทำไมฉันไม่ต้องระบุอาร์กิวเมนต์ประเภทใด ๆ ในนิพจน์Foo.createFoo()? นี่เป็นการอนุมานประเภทหนึ่งหรือไม่? ถ้าฉันต้องการให้ชัดเจนเกี่ยวกับเรื่องนี้ฉันจะระบุประเภทอาร์กิวเมนต์ได้อย่างไร

21
ควรใช้วิธี C # ที่ * สามารถ * คงที่ได้หรือไม่? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา วิธีการ C # ที่สามารถคงที่ควรเป็นแบบคงที่หรือไม่? วันนี้เราคุยกันเรื่องนี้และฉันก็อยู่ในรั้ว ลองนึกภาพคุณมีวิธีการยาว ๆ ที่คุณปรับโครงสร้างใหม่ไม่กี่บรรทัด วิธีการใหม่อาจใช้ตัวแปรท้องถิ่นสองสามตัวจากเมธอดหลักและส่งคืนค่า ซึ่งหมายความว่าอาจเป็นแบบคงที่ คำถามคือควรเป็นแบบคงที่หรือไม่? ไม่คงที่ตามการออกแบบหรือทางเลือกเพียงเพราะธรรมชาติของมันไม่ได้อ้างอิงค่าอินสแตนซ์ใด ๆ
104 c#  static  methods 

6
@ วิธีการทำงานอัตโนมัติและแบบคงที่
ฉันมี@Autowiredบริการที่ต้องใช้จากวิธีการคงที่ ฉันรู้ว่านี่ผิด แต่ฉันไม่สามารถเปลี่ยนการออกแบบปัจจุบันได้เนื่องจากต้องใช้งานมากดังนั้นฉันจึงต้องการแฮ็คง่ายๆสำหรับสิ่งนั้น ฉันไม่สามารถเปลี่ยนrandomMethod()เป็นไม่คงที่และฉันจำเป็นต้องใช้ถั่วอัตโนมัตินี้ มีเบาะแสวิธีการทำอย่างไร? @Service public class Foo { public int doStuff() { return 1; } } public class Boo { @Autowired Foo foo; public static void randomMethod() { foo.doStuff(); } }
104 java  spring  static  autowired 

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