如何在cs文件中查看命令行的输出
How can I see the output of command line in cs file
我正在 .cs
文件中工作,我需要查看由 c# 程序执行的一些 object/variable 的输出。我每次都会用它来调试。
例如,在下面的代码中,我需要查看变量 DataNaiss 的输出(类型、行数、包含的所有元素...)。
var DataNaiss = engine.Evaluate("DataNaiss=DataIns[which(cond1 & DataIns$Id %in% ID_Final),'Date.naissance']").AsCharacter();
我尝试添加此代码:
Console.WriteLine(DataNaiss.ToString());
Console.ReadLine();
输出结果如下图:
请看最后一行 R.net CharacterVector 。好像说的是DataNaiss的类型,但是它的所有元素在哪里呢?
在其他方面,直到现在我不知道为什么我也在同一个控制台window导入了tableDataAch的数据知道我只是为了显示 DataNaiss 而调用控制台 window 而不是为了其他事情!!您可以在第一个 table DataAch 的相同图片元素中看到。
我的导入数据代码是:
REngine engine = REngine.GetInstance();
DataFrame DataAch = engine.Evaluate("DataAch=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Achats1.csv',header=TRUE,sep =';',fill =TRUE)").AsDataFrame();
DataFrame DataDia = engine.Evaluate("DataDia=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Diagnostic.csv',header=TRUE,sep =';',fill=TRUE)").AsDataFrame();
DataFrame DataCad = engine.Evaluate("DataCad=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/CADEAUX.csv',header=TRUE,sep =';',fill=TRUE)").AsDataFrame();
DataFrame DataIns = engine.Evaluate("DataIns=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Inscrits.csv',header=TRUE,sep =';',fill =TRUE)").AsDataFrame();
请问如何解释?
通过覆盖 DataNaiss 变量中类型的 ToString 函数,您可以将它们打印到控制台。
关注the MSDN Guide你可以这样做:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return "Person: " + Name + " " + Age;
}
}
然后在对象上调用 ToString() 允许您打印它们。
Just see the end line please R.net CharacterVector . It seems that it talk about the type of DataNaiss But where are all elements of it?
对变量调用 .ToString()
不会神奇地显示您需要的所有数据。
根据Microsoft Documentation你可以看到:
The default implementation of the ToString method returns the fully qualified name of the type of the Object
因此,您可以理解,在您的情况下,名为 DataNaiss
的变量的类型实际上是 CharacterVector
.
类型
查看 R.Net
的 the source code,您可以清楚地看到 class CharacterVector
没有覆盖 ToString
方法。
为了获取变量 DataNaiss
的元素,您必须自己访问它们。我从源代码中看到的唯一方法是像 DataNaiss[0]
一样访问它们,因为在它们的源代码中你有:
public override string this[int index]
{
get
{
if (index < 0 || Length <= index)
{
throw new ArgumentOutOfRangeException();
}
using (new ProtectedPointer(this))
{
return GetValue(index);
}
}
set
{
if (index < 0 || Length <= index)
{
throw new ArgumentOutOfRangeException();
}
using (new ProtectedPointer(this))
{
SetValue(index, value);
}
}
}
我建议你可以根据它的长度遍历 DataNaiss
对象,并获取你需要的数据,例如,如果你可以访问 Length
属性:
for (int i=0; i<DataNaiss.Length; i++)
{
Console.WriteLine(DataNaiss[i]);
}
这没有经过测试。我正在根据我在他们的代码中阅读的内容回答所有这些问题。
我正在 .cs
文件中工作,我需要查看由 c# 程序执行的一些 object/variable 的输出。我每次都会用它来调试。
例如,在下面的代码中,我需要查看变量 DataNaiss 的输出(类型、行数、包含的所有元素...)。
var DataNaiss = engine.Evaluate("DataNaiss=DataIns[which(cond1 & DataIns$Id %in% ID_Final),'Date.naissance']").AsCharacter();
我尝试添加此代码:
Console.WriteLine(DataNaiss.ToString());
Console.ReadLine();
输出结果如下图:
请看最后一行 R.net CharacterVector 。好像说的是DataNaiss的类型,但是它的所有元素在哪里呢?
在其他方面,直到现在我不知道为什么我也在同一个控制台window导入了tableDataAch的数据知道我只是为了显示 DataNaiss 而调用控制台 window 而不是为了其他事情!!您可以在第一个 table DataAch 的相同图片元素中看到。 我的导入数据代码是:
REngine engine = REngine.GetInstance();
DataFrame DataAch = engine.Evaluate("DataAch=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Achats1.csv',header=TRUE,sep =';',fill =TRUE)").AsDataFrame();
DataFrame DataDia = engine.Evaluate("DataDia=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Diagnostic.csv',header=TRUE,sep =';',fill=TRUE)").AsDataFrame();
DataFrame DataCad = engine.Evaluate("DataCad=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/CADEAUX.csv',header=TRUE,sep =';',fill=TRUE)").AsDataFrame();
DataFrame DataIns = engine.Evaluate("DataIns=read.table('C:/Users/isalah/Desktop/Fichiers_CRM/Fichier_csv/Inscrits.csv',header=TRUE,sep =';',fill =TRUE)").AsDataFrame();
请问如何解释?
通过覆盖 DataNaiss 变量中类型的 ToString 函数,您可以将它们打印到控制台。
关注the MSDN Guide你可以这样做:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return "Person: " + Name + " " + Age;
}
}
然后在对象上调用 ToString() 允许您打印它们。
Just see the end line please R.net CharacterVector . It seems that it talk about the type of DataNaiss But where are all elements of it?
对变量调用 .ToString()
不会神奇地显示您需要的所有数据。
根据Microsoft Documentation你可以看到:
The default implementation of the ToString method returns the fully qualified name of the type of the Object
因此,您可以理解,在您的情况下,名为 DataNaiss
的变量的类型实际上是 CharacterVector
.
查看 R.Net
的 the source code,您可以清楚地看到 class CharacterVector
没有覆盖 ToString
方法。
为了获取变量 DataNaiss
的元素,您必须自己访问它们。我从源代码中看到的唯一方法是像 DataNaiss[0]
一样访问它们,因为在它们的源代码中你有:
public override string this[int index] { get { if (index < 0 || Length <= index) { throw new ArgumentOutOfRangeException(); } using (new ProtectedPointer(this)) { return GetValue(index); } } set { if (index < 0 || Length <= index) { throw new ArgumentOutOfRangeException(); } using (new ProtectedPointer(this)) { SetValue(index, value); } } }
我建议你可以根据它的长度遍历 DataNaiss
对象,并获取你需要的数据,例如,如果你可以访问 Length
属性:
for (int i=0; i<DataNaiss.Length; i++)
{
Console.WriteLine(DataNaiss[i]);
}
这没有经过测试。我正在根据我在他们的代码中阅读的内容回答所有这些问题。