У меня была такая же проблема, как и у вас, в конце я просто сохранил входные данные в виде файла .RData, который я загрузил до всего остального в коде Сервера.
# load packages
library(shiny)
load("loaddata.RData")
server <- function(input, output) {
....
Я не был бы удивлен, добавляется ли "С" или подобная функция к C# в конечном счете наряду с другой прежде популярный исключительно функции VB. Был большой разговор в презентациях C# 4.0 предварительного просмотра недавно в PDC и в другом месте увеличенного "внимания на четность языка", запускающуюся с C# 4.0 и VB 10.
Лично мне не нравится С ТЕМ, когда это используется после конструкции - если необходимо сделать несколько вещей с объектом после того, как это инициализируется, обычно то поведение должно инкапсулироваться в самом типе. Если Вы действительно хотите сделать что-то как С, это - только вопрос объявления короткой переменной и дополнительно представления нового объема.
Однако полезно смочь сжато инициализировать объект с несколькими свойствами - который является точно, почему C# 3 позволяет Вам писать:
MyObject x = new MyObject { Name="Fred", Age=20, Salary=15000 };
Существуют ограничения к этому (который дополнительные и именованные параметры в C# 4 помогут преодолеть), но это лучше, чем это было, не ведя к потенциальной путанице/неоднозначностям.
(На передней стороне литерала XML я снова с командой C# - XML является очень определенной технологией для помещения в язык. Если они могли бы придумать обобщенную форму, которая, оказалось, создала XML, но могла использоваться для создания других деревьев также, которые будут хороши - так же, как выражения запроса непосредственно не связываются с IEnumerable или IQueryable.)
Можно заменить VB.Net's With
путем создания быстрого однобуквенного имени переменной. Это - на самом деле меньше кода с тех пор With
также требует End With
позже.
Например, одна вещь, которую я раньше делал справедливо часто, была, выполняют итерации по строкам в таблице данных для отчета о стиле управления/повреждения.
В vb.net, который мог бы быть похожим на это:
Dim CurCustomerName As String
Dim CustomerSalesTotal As Decimal
Dim ds As DataSet = GetReportData()
With ds.Tables(0).Rows
Dim i As Integer = 0
While i < .Count
''//{
CurCustomerName = .Item(i)("CustName")
CustomerSalesTotal = 0
PrintHeaderLine(CurCustomerName)
While i < .Count AndAlso CurCustomerName = .Item(i)("CustName")
''//{
PrintItemLine(.Item(i)("OrderTotal"))
CustomerSalesTotal += .Item(i)("OrderTotal")
i+= 1
End While ''//}
PrintSubTotalLine(CustomerSalesTotal)
End While ''//}
End With
C# был бы похож на это:
string CurCustomerName;
Decimal CustomerSalesTotal;
DataSet ds = GetReportData();
DataRowCollection r = ds.Tables[0].Rows;
int i=0;
while (i<r.Count)
{
CurCustomerName = r[i]["CustName"];
CustomerSalesTotal = 0;
PrintHeaderLine(CurCustomerName);
while (i<r.Count && CurCustomerName == r[i]["CustName"])
{
PrintItemLine(r[i]["OrderTotal"]);
CustomerSalesTotal += r[i]["OrderTotal"];
i++;
}
PrintSubTotalLine(CustomerSalesTotal);
}
Вещь заметить вот состоит в том, что для версии C# на самом деле было нужно меньше ввода, потому что VB не мог объединиться WITH
с индексом массива, и должен был пройти .Item
свойство для определенных вещей. Это не имеет большого значения здесь, но воображают, имел ли отчет 20 полей вместо 2 и должен был повредиться на 3 объектах вместо 1.
Конечно, Вы могли использовать технику, продемонстрированную в C# для VB также. Но главное отметить является этим WITH
действительно не дает Вам очень.
Это о предпочтениях разработчика, но я с Вами о С. Мое предпочтение состоит в том, чтобы минимизировать количество переменных в игре и объем, в котором они живут. Философия C#, кажется, является почти такой же. Но в этом случае ответы здесь, кажется, предполагают, что, добавляя (и делая себя ответственными за) переменная является Хорошей Вещью по сравнению с конструкцией, которая, мне, очень похожа на лямбды.
Я чувствую, что довольно не имеет смысла только позволить 'массовую' установку свойства во время инициализации. Я действительно не добираюсь, почему это было бы 'плохо':
MyObj myObj = ObjFactoryFunction();
...
if(someCondition)
myObj { Prop1 = 1, Prop2 = 2 };
Я чувствую, что этот пример кода является чистым и кратким.
Обычно, когда я вижу запрос на a with
функция в C#, я вижу код, который извлек бы выгоду из рефакторинга. Обычно, когда рефакторинг сделан, воображаемая потребность в with
не стал.
Мне нравится способ, которым разрабатывает мой код, когда я создаю быстрый интерфейс в к объекту; это имеет некоторые общие черты with
. Если я разрабатывал MessageBox.Show()
, Я мог бы записать:
new MessageBox()
.SetText("Hello World!")
.SetButtons(MessageBox.Buttons.OK)
.SetIcon(MessageBox.Icon.Information)
.Show();
Можно также видеть что-то похожее с Linq:
var q = Enumerable.Range(1, 100)
.Where(x => x % 2 == 0)
.Select(x => x * x);
Это чувствует немного как with
но, кажется, подходит естественно к на язык, который я уже имею.