คำถามติดแท็ก variable-names

10
ชื่อตารางเป็นตัวแปร
ฉันพยายามเรียกใช้แบบสอบถามนี้: declare @tablename varchar(50) set @tablename = 'test' select * from @tablename สิ่งนี้ทำให้เกิดข้อผิดพลาดดังต่อไปนี้: เกี่ยวกับ 1087 ระดับ 16 สถานะ 1 บรรทัด 5 ต้องประกาศตัวแปรตาราง "@tablename" วิธีที่ถูกต้องในการตั้งชื่อตารางเป็นแบบไดนามิกคืออะไร

24
ทำไมชื่อตัวแปรเริ่มต้นด้วยตัวเลขไม่ได้?
ฉันทำงานกับนักพัฒนา C ++ รายใหม่เมื่อเขาถามคำถาม: "ทำไมชื่อตัวแปรไม่สามารถขึ้นต้นด้วยตัวเลข" ฉันไม่สามารถหาคำตอบได้ยกเว้นว่าตัวเลขบางตัวสามารถมีข้อความอยู่ในนั้น (123456L, 123456U) และจะเป็นไปไม่ได้หากคอมไพเลอร์คิดทุกอย่างด้วยอักขระอัลฟ่าจำนวนหนึ่งเป็นชื่อตัวแปร นั่นคือคำตอบที่ถูกต้องหรือไม่? มีเหตุผลอะไรอีกไหม? string 2BeOrNot2Be = "that is the question"; // Why won't this compile?

7
ฉันจะโหลดออบเจ็กต์เป็นชื่อตัวแปรที่ฉันระบุจากไฟล์ข้อมูล R ได้อย่างไร
เมื่อคุณบันทึกตัวแปรในไฟล์ข้อมูล R โดยใช้ตัวแปรsaveนั้นจะถูกบันทึกภายใต้ชื่อใด ๆ ที่มีในเซสชันที่บันทึกไว้ เมื่อฉันไปโหลดจากเซสชันอื่นในภายหลังมันถูกโหลดด้วยชื่อเดียวกันซึ่งสคริปต์การโหลดไม่สามารถรู้ได้ ชื่อนี้สามารถเขียนทับตัวแปรที่มีอยู่ของชื่อเดียวกันในเซสชันการโหลด มีวิธีโหลดออบเจ็กต์อย่างปลอดภัยจากไฟล์ข้อมูลไปยังชื่อตัวแปรที่ระบุโดยไม่เสี่ยงต่อการโคลนตัวแปรที่มีอยู่หรือไม่? ตัวอย่าง: กำลังบันทึกเซสชัน: x = 5 save(x, file="x.Rda") กำลังโหลดเซสชัน: x = 7 load("x.Rda") print(x) # This will print 5. Oops. ฉันต้องการให้มันทำงานอย่างไร: x = 7 y = load_object_from_file("x.Rda") print(x) # should print 7 print(y) # should print 5

30
ฉันผิดศีลธรรมหรือไม่ที่ใช้ชื่อตัวแปรที่แตกต่างจากประเภทของชื่อนั้น ๆ
ตัวอย่างเช่นใช้รหัสนี้: var person = new Person(); หรือสำหรับคุณ Pythonistas: person = Person() ฉันบอกตลอดเวลาว่าสิ่งนี้เลวร้ายแค่ไหน แต่ยังไม่เห็นตัวอย่างของการผิดศีลธรรมของรหัสสองบรรทัดนี้ สำหรับฉันแล้วคน ๆ หนึ่งก็คือบุคคลและการพยายามตั้งชื่ออื่นเป็นการเสียเวลา ฉันคิดว่าในช่วงหลายวันก่อนที่จะเน้นไวยากรณ์สิ่งนี้จะเป็นเรื่องใหญ่ แต่ทุกวันนี้มันค่อนข้างง่ายที่จะบอกชื่อประเภทนอกเหนือจากชื่อตัวแปร Heck มันง่ายมากที่จะเห็นความแตกต่างที่นี่ใน SO หรือมีบางอย่างที่ฉันขาดหายไป? ในกรณีนี้จะเป็นประโยชน์หากคุณสามารถให้ตัวอย่างโค้ดที่ทำให้เกิดปัญหาได้

1
เหตุใดฉันจึงประกาศตัวแปรลูกที่มีชื่อเดียวกันกับตัวแปรในขอบเขตพาเรนต์
ฉันเขียนโค้ดบางส่วนเมื่อเร็ว ๆ นี้ซึ่งฉันนำชื่อตัวแปรมาใช้ซ้ำโดยไม่ได้ตั้งใจเป็นพารามิเตอร์ของการดำเนินการที่ประกาศไว้ในฟังก์ชันที่มีตัวแปรชื่อเดียวกันอยู่แล้ว ตัวอย่างเช่น: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; เมื่อฉันเห็นการทำสำเนาฉันรู้สึกประหลาดใจเมื่อเห็นว่าโค้ดรวบรวมและทำงานได้อย่างสมบูรณ์แบบซึ่งไม่ใช่พฤติกรรมที่ฉันคาดหวังจากสิ่งที่ฉันรู้เกี่ยวกับขอบเขตใน C # บาง Googling รวดเร็วเปิดขึ้นดังนั้นคำถามที่บ่นว่ารหัสที่คล้ายกันไม่สร้างข้อผิดพลาดเช่นแลมบ์ดาขอบเขตชี้แจง (ฉันวางโค้ดตัวอย่างนั้นลงใน IDE ของฉันเพื่อดูว่ามันจะทำงานได้หรือไม่เพื่อให้แน่ใจว่ามันจะทำงานได้อย่างสมบูรณ์) นอกจากนี้เมื่อฉันป้อนกล่องโต้ตอบเปลี่ยนชื่อใน Visual Studio สิ่งแรกxจะถูกเน้นเป็นชื่อที่ขัดแย้งกัน ทำไมรหัสนี้ใช้งานได้? ฉันใช้ C # 8 กับ Visual Studio 2019
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.