Yani şu tökezlediörtük dönüştürme
> Data that i want
> Namespace.ExcelDataField
> Data that i want
Nerede ExcelDataField açıkçası ben yazdığım bir sınıf bana veri okumak yardımcı olmak için bir excel sayfasından çıktı. Bunu, MoveFirst/Next ile VBAs DAO erişimine benzemek ve her zaman 1 satırlık veriyi (currentRow) göstermeye çalıştım.
Veriler excel sayfasından çıkarken excel sayfasından çıkan verileri kapsüllemek için bir ExcelDataField sınıfı kullandım. Ben içine bir excel sayfasını okumak için kullanıyorum ve sadece okuyorum sınıftır bu sınıfın ExcelDataField : ExcelDataField<string>
bir aşırı yapılmış için
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;
}
}
Şu anda tüm veriler daha sonra kolayca dize olarak ele alınabilir test amacıyla darlık am konsola geri döndü.
Her şey, örtük dönüştürmeyi bulamadığı enterpolasyonlu dizeleri kullanmadığım sürece iyi çalışır. ExcelDataField : ExcelDataField<string
>ExcelDataField : ExcelDataField<String>
değiştirmeyi denedim, ancak her ikisi de çalışmıyor.
Anlaşılan dizeler anlamında dizeden veya Dize'den yalnızca dolaylı olarak herhangi bir örtük dönüşüme sahip olmayan FormattableString türünü kullanın.
Sorum şu: Burada tam olarak neler olup bittiğini daha detaylı olarak açıklayabilir ve enterpolasyonlu dizeleri kullanmam için temiz bir yol var mı?