Vì vậy, tôi stumbled khi điều sau đây:chuyển đổi ngầm để String/chuỗi bên trong chuỗi suy
Console.WriteLine(currentRow["Projekt"]);
Console.WriteLine($"{currentRow["Projekt"]}");
Console.WriteLine($"{(string)currentRow["Projekt"]}");
Với kết quả:
> Data that i want
> Namespace.ExcelDataField
> Data that i want
đâu ExcelDataField tôi rõ ràng là một lớp học tôi đã viết để giúp tôi đọc dữ liệu ra khỏi một bảng excel. Tôi đã cố gắng để thực hiện điều này giống như truy cập VBA DAO với MoveFirst/Next và luôn luôn phơi bày 1 hàng dữ liệu (currentRow).
Tôi đã sử dụng lớp ExcelDataField để đóng gói dữ liệu sắp ra khỏi bảng tính excel của mình khi dữ liệu xuất hiện dưới dạng dynmic ra khỏi bảng excel.
public class ExcelDataField<T>
{
private Excel.Range m_XlRange;
private int m_Row;
private int m_Col;
public T Data
{
get
{
return (T)(this.m_XlRange.Cells[this.m_Row, this.m_Col] as Excel.Range)?.Value2;
}
set
{
this.m_XlRange.Cells[this.m_Row, this.m_Col] = value;
}
}
public ExcelDataField(Excel.Range range, int row, int col)
{
this.m_XlRange = range;
this.m_Row = row;
this.m_Col = col;
}
public static implicit operator T(ExcelDataField<T> dataField)
{
return dataField.Data;
}
}
Hiện nay tôi đang asuming cho mục đích thử nghiệm rằng tất cả các dữ liệu sau này có thể dễ dàng được xử lý như một chuỗi để tôi đưa ra một tình trạng quá tải của lớp này ExcelDataField : ExcelDataField<string>
đó là lớp tôi đang sử dụng để đọc một tờ excel vào và chỉ cần đọc nó trở lại giao diện điều khiển.
Mọi thứ hoạt động tốt miễn là tôi không sử dụng các chuỗi nội suy rõ ràng là không tìm thấy chuyển đổi tiềm ẩn của tôi. Tôi đã cố gắng thay đổi ExcelDataField : ExcelDataField<string
> thành ExcelDataField : ExcelDataField<String>
nhưng cả hai đều không hoạt động.
Trong chuỗi sự hiểu biết nội suy của tôi, sử dụng loại FormattableString không có bất kỳ chuyển đổi ngầm nào từ chuỗi hoặc Chuỗi chỉ rõ ràng.
Câu hỏi của tôi có thể giải thích chi tiết hơn về chính xác những gì đang diễn ra ở đây và có cách nào giúp tôi có thể sử dụng các chuỗi nội suy không?