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

การคัดเลือกนักแสดงเป็นกระบวนการที่ประเภทวัตถุจะถูกแปลงเป็นประเภทอื่นอย่างชัดเจนหากได้รับอนุญาตให้ทำการแปลง กระบวนการนี้อาจนำไปสู่การเปลี่ยนแปลงมูลค่า

18
แคสติ้ง vs การใช้คำว่า 'as' ใน CLR
เมื่อมีการตั้งโปรแกรมอินเทอร์เฟซฉันพบว่าฉันทำการแปลงหรือแปลงวัตถุเป็นจำนวนมาก การแปลงสองวิธีนี้มีความแตกต่างกันหรือไม่? ถ้าเป็นเช่นนั้นจะมีความแตกต่างของค่าใช้จ่ายหรือสิ่งนี้มีผลต่อโปรแกรมของฉันอย่างไร public interface IMyInterface { void AMethod(); } public class MyClass : IMyInterface { public void AMethod() { //Do work } // Other helper methods.... } public class Implementation { IMyInterface _MyObj; MyClass _myCls1; MyClass _myCls2; public Implementation() { _MyObj = new MyClass(); // What is the difference …
386 c#  casting  clr 


13
มันสมเหตุสมผลไหมที่จะใช้“ เป็น” แทนที่จะใช้ตัวละครถึงแม้ว่าจะไม่มีการตรวจสอบที่เป็นโมฆะ? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ในบล็อกการพัฒนาตัวอย่างรหัสออนไลน์และ (เมื่อเร็ว ๆ นี้) แม้แต่หนังสือฉันยังคงสะดุดเกี่ยวกับรหัสเช่นนี้: var y = x as T; y.SomeMethod(); หรือแย่ยิ่งกว่า: (x as T).SomeMethod(); นั่นไม่สมเหตุสมผลสำหรับฉัน ถ้าคุณแน่ใจว่าxเป็นประเภทที่คุณควรใช้โยนโดยตรง:T (T)xหากคุณไม่แน่ใจคุณสามารถใช้asแต่จำเป็นต้องตรวจสอบnullก่อนดำเนินการบางอย่าง ทุกสิ่งที่โค้ดข้างต้นไม่สามารถที่จะเปิด (ประโยชน์) InvalidCastExceptionเป็น NullReferenceException(ไม่มีประโยชน์) ฉันเป็นคนเดียวที่คิดว่านี่เป็นการละเมิดasคำหลักที่โจ่งแจ้งหรือไม่ หรือว่าฉันพลาดบางสิ่งบางอย่างที่ชัดเจนและรูปแบบข้างต้นนั้นสมเหตุสมผล


17
Cast Double to Integer ใน Java
มีวิธีใดบ้างที่จะส่งjava.lang.Doubleไปjava.lang.Integer? มันส่งข้อยกเว้น "java.lang.ClassCastException: java.lang.Double เข้ากันไม่ได้กับ java.lang.Integer"
348 java  casting 

17
ส่ง Int ไปยัง enum ใน Java
วิธีที่ถูกต้องในการส่ง Int ไปยัง enum ใน Java จะให้ enum ต่อไปนี้คืออะไร? public enum MyEnum { EnumValue1, EnumValue2 } MyEnum enumValue = (MyEnum) x; //Doesn't work???
333 java  casting  enums  ordinal 


12
C #: 'is' คำหลักและตรวจสอบ Not
นี่เป็นคำถามงี่เง่า แต่คุณสามารถใช้รหัสนี้เพื่อตรวจสอบว่ามีบางอย่างที่เป็นประเภทใด ... if (child is IContainer) { //.... มีวิธีที่สง่างามกว่านี้ในการตรวจสอบอินสแตนซ์ "NOT" หรือไม่ if (!(child is IContainer)) { //A little ugly... silly, yes I know... //these don't work :) if (child !is IContainer) { if (child isnt IContainer) { if (child aint IContainer) { if (child isnotafreaking IContainer) { ใช่ใช่ ... …
287 c#  casting  keyword 


8
วิธีที่เร็วที่สุดในการแปลงสตริงเป็นจำนวนเต็มใน PHP
ใช้ PHP วิธีที่เร็วที่สุดในการแปลงสตริงเช่นนี้"123"เป็นจำนวนเต็มคืออะไร เหตุใดจึงเป็นวิธีที่เร็วที่สุด? จะเกิดอะไรขึ้นหากได้รับอินพุตที่ไม่คาดคิดเช่น"hello"หรืออาร์เรย์

7
แยกวันที่ (yyyy / mm / dd) จากการประทับเวลาใน PostgreSQL
ฉันต้องการแยกส่วนวันที่จากการประทับเวลาใน PostgreSQL ฉันต้องการให้เป็นDATEประเภทpostgresql เพื่อให้ฉันสามารถแทรกลงในตารางอื่นที่ต้องการDATEค่า ตัวอย่างเช่นถ้าฉันมี2011/05/26 09:00:00ฉันต้องการ2011/05/26 ฉันพยายามคัดเลือกนักแสดง แต่ได้รับเพียงปี 2011: timestamp:date cast(timestamp as date) ฉันลองto_char()ด้วยto_date(): SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD') FROM val3 WHERE id=1; ฉันพยายามทำให้เป็นฟังก์ชัน: CREATE OR REPLACE FUNCTION testing() RETURNS void AS ' DECLARE i_date DATE; BEGIN SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD") INTO i_date FROM exampTable WHERE id=1; INSERT INTO foo(testd) VALUES (i); …

10
การแบ่งจำนวนเต็ม: คุณสร้างจำนวนอย่างไร
สำหรับบล็อกรหัสนี้: int num = 5; int denom = 7; double d = num / denom; ค่าของการมีd 0.0สามารถบังคับให้ทำงานโดยการคัดเลือกนักแสดง: double d = ((double) num) / denom; แต่มีวิธีอื่นในการรับdoubleผลลัพธ์ที่ถูกต้องหรือไม่ ฉันไม่ชอบการคัดเลือกแบบดั้งเดิมผู้รู้ว่าจะเกิดอะไรขึ้น

17
คุณจะเลือก List of supertypes เป็น List of subtypes ได้อย่างไร
ตัวอย่างเช่นสมมติว่าคุณมีสองคลาส: public class TestA {} public class TestB extends TestA{} ฉันมีวิธีที่ผลตอบแทนList<TestA>และฉันต้องการที่จะโยนวัตถุทั้งหมดในรายการที่จะเพื่อที่ฉันจบลงด้วยTestBList<TestB>

6
ไวยากรณ์ที่สั้นลงสำหรับการส่งจากรายการ <X> ไปยังรายการ <Y>?
ฉันรู้ว่าเป็นไปได้ที่จะส่งรายการจากประเภทหนึ่งไปอีกประเภทหนึ่ง (เนื่องจากวัตถุของคุณมีวิธีดำเนินการแบบคงที่อย่างชัดเจนในที่สาธารณะเพื่อทำการแคสต์) ทีละรายการดังต่อไปนี้: List&lt;Y&gt; ListOfY = new List&lt;Y&gt;(); foreach(X x in ListOfX) ListOfY.Add((Y)x); แต่เป็นไปไม่ได้ไหมที่จะส่งรายชื่อทั้งหมดในครั้งเดียว? ตัวอย่างเช่น, ListOfY = (List&lt;Y&gt;)ListOfX;
237 c#  list  casting  ienumerable 


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