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

การอ้างอิงคือค่าที่ช่วยให้โปรแกรมเข้าถึงข้อมูลเฉพาะทางอ้อมเช่นตัวแปรหรือเรคคอร์ดในหน่วยความจำของคอมพิวเตอร์หรือในอุปกรณ์เก็บข้อมูลอื่น


26
ฉันจะส่งผ่านตัวแปรโดยอ้างอิงได้อย่างไร
เอกสาร Python ดูเหมือนไม่ชัดเจนว่าพารามิเตอร์ถูกส่งผ่านโดยการอ้างอิงหรือค่าและรหัสต่อไปนี้สร้างค่าไม่เปลี่ยนแปลง 'ดั้งเดิม' class PassByReference: def __init__(self): self.variable = 'Original' self.change(self.variable) print(self.variable) def change(self, var): var = 'Changed' มีบางอย่างที่ฉันสามารถทำได้เพื่อส่งผ่านตัวแปรโดยการอ้างอิงจริงหรือไม่?

26
ความแตกต่างระหว่างคำหลัก 'อ้างอิง' และ 'ออก' คืออะไร
ฉันกำลังสร้างฟังก์ชั่นที่ฉันต้องผ่านวัตถุเพื่อให้สามารถแก้ไขได้โดยฟังก์ชั่น อะไรคือความแตกต่างระหว่าง: public void myFunction(ref MyClass someClass) และ public void myFunction(out MyClass someClass) ฉันควรใช้แบบใดและเพราะเหตุใด
891 c#  reference  keyword  out  ref 

20
วิธีคัดลอกพจนานุกรมและแก้ไขเฉพาะสำเนา
ใครช่วยอธิบายสิ่งนี้ให้ฉันได้ไหม นี่ไม่สมเหตุสมผลเลยสำหรับฉัน ฉันคัดลอกพจนานุกรมไปที่อื่นและแก้ไขครั้งที่สองและทั้งคู่เปลี่ยนไป ทำไมสิ่งนี้จึงเกิดขึ้น >>> dict1 = {"key1": "value1", "key2": "value2"} >>> dict2 = dict1 >>> dict2 {'key2': 'value2', 'key1': 'value1'} >>> dict2["key2"] = "WHY?!" >>> dict1 {'key2': 'WHY?!', 'key1': 'value1'}


30
คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ
ฉันพยายามเรียกใช้การทดสอบหน่วยในแอปพลิเคชันฟอร์ม C # Windows (Visual Studio 2005) และฉันได้รับข้อผิดพลาดต่อไปนี้: System.IO.FileLoadException: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'ยูทิลิตี้รุ่น = 1.2.0.200, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 764d581291d764f7' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040) ** ที่ x.Foo.FooGO () ที่ x.Foo.Foo2 (String groupName_) ใน Foo.cs: บรรทัด 123 ที่ x.Foo.UnitTests.FooTests.TestFoo () ใน FooTests.cs: บรรทัด 98 ** System.IO.FileLoadException: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'ยูทิลิตี้รุ่น = 1.2.0.203, วัฒนธรรม …

14
มีความแตกต่างระหว่าง“ ==” และ“ เป็น” หรือไม่?
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันGoogle-Fuได้ล้มเหลวฉัน ใน Python การทดสอบสองแบบต่อไปนี้มีความเท่าเทียมกันหรือไม่ n = 5 # Test one. if n == 5: print 'Yay!' # Test two. if n is 5: print 'Yay!' สิ่งนี้ถือเป็นจริงสำหรับวัตถุที่คุณจะเปรียบเทียบอินสแตนซ์ ( listพูด) หรือไม่? ตกลงดังนั้นคำตอบของฉันแบบนี้: L = [] L.append(1) if L == [1]: print 'Yay!' # Holds true, but... if L is …

10
ความสัมพันธ์ MongoDB: ฝังหรืออ้างอิง?
ฉันใหม่กับ MongoDB - มาจากพื้นหลังฐานข้อมูลเชิงสัมพันธ์ ฉันต้องการออกแบบโครงสร้างคำถามด้วยความคิดเห็น แต่ไม่ทราบว่าความสัมพันธ์ใดที่จะใช้สำหรับความคิดเห็น: embedหรือreference? คำถามที่มีความคิดเห็นเช่นstackoverflowจะมีโครงสร้างดังนี้: Question title = 'aaa' content = bbb' comments = ??? ตอนแรกฉันต้องการใช้ความคิดเห็นที่ฝัง (ฉันคิดว่าembedแนะนำใน MongoDB) เช่นนี้: Question title = 'aaa' content = 'bbb' comments = [ { content = 'xxx', createdAt = 'yyy'}, { content = 'xxx', createdAt = 'yyy'}, { content = 'xxx', …
524 mongodb  reference  embed 

16
ควรใช้การอ้างอิงกับพอยน์เตอร์เมื่อใด
ฉันเข้าใจไวยากรณ์และความหมายทั่วไปของพอยน์เตอร์กับการอ้างอิง แต่ฉันจะตัดสินใจได้อย่างไรว่าควรจะใช้การอ้างอิงหรือพอยน์เตอร์ใน API เหมาะสมกว่าหรือน้อยกว่านั้น โดยปกติแล้วบางสถานการณ์ต้องการหนึ่งหรืออื่น ๆ ( operator++ต้องการอาร์กิวเมนต์อ้างอิง) แต่โดยทั่วไปฉันพบว่าฉันชอบที่จะใช้พอยน์เตอร์ (และพอยน์เตอร์พอยน์) เนื่องจากไวยากรณ์มีความชัดเจนว่าตัวแปรนั้นผ่านการทำลายล้าง เช่นในรหัสต่อไปนี้: void add_one(int& n) { n += 1; } void add_one(int* const n) { *n += 1; } int main() { int a = 0; add_one(a); // Not clear that a may be modified add_one(&a); // 'a' is clearly …
381 c++  pointers  reference 

9
เหตุใดฉันจึงไม่สามารถสร้างเวกเตอร์ของการอ้างอิงได้
เมื่อฉันทำสิ่งนี้: std::vector<int> hello; ทุกอย่างใช้งานได้ดี อย่างไรก็ตามเมื่อฉันทำให้เป็นเวกเตอร์ของการอ้างอิงแทน: std::vector<int &> hello; ฉันได้รับข้อผิดพลาดที่น่ากลัวเช่น ข้อผิดพลาด C2528: 'ตัวชี้': ตัวชี้ไปยังการอ้างอิงนั้นผิดกฎหมาย ฉันต้องการใส่การอ้างอิงจำนวนมากเพื่อวางโครงสร้างในเวกเตอร์เพื่อที่ฉันจะได้ไม่ต้องยุ่งกับพอยน์เตอร์ ทำไมเวกเตอร์ถึงโกรธเคืองเรื่องนี้? ตัวเลือกเดียวของฉันคือใช้เวกเตอร์พอยน์เตอร์แทนหรือไม่

16
การฝึกในการส่งคืนตัวแปรอ้างอิง C ++ นั้นชั่วร้ายหรือไม่?
ฉันคิดว่ามันเป็นเรื่องส่วนตัว ฉันไม่แน่ใจว่าความคิดเห็นจะเป็นเอกฉันท์หรือไม่ (ฉันเห็นตัวอย่างโค้ดจำนวนมากซึ่งส่งคืนการอ้างอิง) จากความคิดเห็นที่มีต่อคำถามนี้ฉันเพิ่งถามเกี่ยวกับการเริ่มต้นการอ้างอิงการอ้างอิงกลับอาจเป็นความชั่วเพราะ [อย่างที่ฉันเข้าใจ] มันทำให้ง่ายต่อการพลาดการลบซึ่งจะนำไปสู่การรั่วไหลของหน่วยความจำ สิ่งนี้ทำให้ฉันเป็นกังวลขณะที่ฉันติดตามตัวอย่าง (เว้นแต่ฉันจะจินตนาการถึงสิ่งต่าง ๆ ) และทำสิ่งนี้ในสถานที่ที่เหมาะสม ... ฉันเข้าใจผิดหรือเปล่า? มันชั่วร้ายเหรอ? ถ้าเป็นเช่นนั้นความชั่วร้ายเพียงใด? ฉันรู้สึกว่าเนื่องจากพอยน์เตอร์และการอ้างอิงแบบผสมของฉันรวมกับความจริงที่ว่าฉันใหม่กับ C ++ และความสับสนอย่างสมบูรณ์เกี่ยวกับสิ่งที่จะใช้เมื่อแอปพลิเคชันของฉันต้องเป็นนรกหน่วยความจำรั่วไหล ... นอกจากนี้ฉันเข้าใจว่าการใช้ตัวชี้สมาร์ท / แชร์นั้นเป็นที่ยอมรับโดยทั่วไปว่าเป็นวิธีที่ดีที่สุดในการหลีกเลี่ยงการรั่วไหลของหน่วยความจำ
341 c++  reference  c++-faq 

30
รับ "ประเภทหรือชื่อเนมสเปซไม่พบ" แต่ทุกอย่างดูโอเคไหม
ฉันได้รับ: ไม่พบชื่อประเภทหรือเนมสเปซ ข้อผิดพลาดสำหรับแอป C # WPF ใน VS2010 โค้ดนี้มีการรวบรวมที่ดี แต่ทันใดนั้นฉันก็พบข้อผิดพลาดนี้ ฉันได้ลองลบการอ้างอิงโครงการและusingคำสั่งปิด VS2010 แล้วเริ่มต้นใหม่ แต่ก็ยังมีปัญหานี้อยู่ ความคิดใด ๆ ที่ทำให้เกิดเหตุการณ์เช่นนี้ซึ่งดูเหมือนว่าฉันกำลังทำสิ่งที่ถูกต้องอ้างอิง & usingคำสั่ง? ฉันยังสังเกตเห็นใน VS2010 ว่า Intellisense สำหรับเนมสเปซนั้นทำงานได้ดีดังนั้นดูเหมือนว่า VS2010 จะมีการอ้างอิงโครงการและเห็นเนมสเปซในมือเดียว แต่ในระหว่างการคอมไพล์ไม่เห็นหรือไม่

19
MSBuild ไม่ได้คัดลอกข้อมูลอ้างอิง (ไฟล์ DLL) หากใช้การอ้างอิงโครงการในการแก้ปัญหา
ฉันมีสี่โครงการในโซลูชัน Visual Studio ของฉัน (ทุกคนกำหนดเป้าหมาย. NET 3.5) - สำหรับปัญหาของฉันมีเพียงสองโครงการเท่านั้นที่สำคัญ: MyBaseProject <- ไลบรารีคลาสนี้อ้างอิงถึงไฟล์ DLL ของบุคคลที่สาม (elmah.dll) MyWebProject1 <- โครงการเว็บแอปพลิเคชันนี้มีการอ้างอิงถึง MyBaseProject ฉันเพิ่มการอ้างอิงelmah.dllในMyBaseProjectใน Visual Studio 2008 โดยคลิกที่ "เพิ่มการอ้างอิง ... " → "เรียกดู" แท็บ→เลือก "elmah.dll" คุณสมบัติของการอ้างอิง Elmah มีดังนี้: นามแฝง - ทั่วโลก คัดลอกภายใน - จริง วัฒนธรรม - คำอธิบาย - ข้อผิดพลาดการบันทึกโมดูลและตัวจัดการ (ELMAH) สำหรับ ASP.NET ประเภทไฟล์ - …

11
ฉันควรใช้คำหลักใหม่ใน C ++ เมื่อใด
ฉันใช้ C ++ มาระยะหนึ่งแล้วและฉันก็สงสัยเกี่ยวกับคำหลักใหม่ ฉันควรจะใช้หรือไม่? 1) ด้วยคำหลักใหม่ ... MyClass* myClass = new MyClass(); myClass->MyField = "Hello world!"; 2) ไม่มีคำหลักใหม่ ... MyClass myClass; myClass.MyField = "Hello world!"; จากมุมมองของการใช้งานพวกเขาดูเหมือนจะไม่แตกต่างกัน (แต่ฉันแน่ใจว่าพวกเขาเป็น) ... อย่างไรก็ตามภาษาหลักของฉันคือ C # และแน่นอนวิธีที่ 1 คือสิ่งที่ฉันคุ้นเคย ความยากดูเหมือนจะเป็นวิธีที่ 1 นั้นยากที่จะใช้กับคลาส std C ++ ฉันควรใช้วิธีใด อัปเดต 1: ฉันเพิ่งใช้คำหลักใหม่สำหรับหน่วยความจำฮีป (หรือที่เก็บสินค้าฟรี ) สำหรับอาร์เรย์ขนาดใหญ่ซึ่งอยู่นอกขอบเขต (เช่นถูกส่งคืนจากฟังก์ชัน) เมื่อก่อนที่ฉันใช้กองซ้อนซึ่งทำให้องค์ประกอบครึ่งหนึ่งเสียหายนอกขอบเขตเปลี่ยนเป็นการใช้ฮีปเพื่อให้แน่ใจว่าองค์ประกอบนั้นอยู่ในชั้นเชิง …

8
อาร์เรย์ใน PHP ถูกคัดลอกเป็นค่าหรืออ้างอิงถึงตัวแปรใหม่และเมื่อส่งผ่านไปยังฟังก์ชั่นหรือไม่
1) เมื่ออาร์เรย์ถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังเมธอดหรือฟังก์ชันมันถูกส่งผ่านโดยการอ้างอิงหรือตามค่าหรือไม่ 2) เมื่อกำหนดอาเรย์ให้กับตัวแปรตัวแปรใหม่อ้างอิงถึงอาเรย์ดั้งเดิมหรือเป็นสำเนาใหม่หรือไม่? เกี่ยวกับการทำสิ่งนี้: $a = array(1,2,3); $b = $a; คือ$bการอ้างอิงถึง$a?

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