[C#, Этюд] Unassigned variable
У меня в программе есть такой метод:
static void Main()
{
X x;
x.Foo();
}
и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
Re: [C#, Этюд] Unassigned variable
От:
Lloyd
Дата: 22.03.10 12:11
Оценка:
Здравствуйте, nikov, Вы писали:
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
Foo — не extension-метод?
Re[2]: [C#, Этюд] Unassigned variable
Здравствуйте, Lloyd, Вы писали:
N>>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
L>Foo — не extension-метод?
Могу сделать extension, могу не extension.
Re: [C#, Этюд] Unassigned variable
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
Очень просто, просто компилятор вас боится, nikov.
Re: [C#, Этюд] Unassigned variable
От:
jitm
Дата: 22.03.10 12:31
Оценка:
-1
Здравствуйте, nikov, Вы писали:
N>У меня в программе есть такой метод:
N>N>static void Main()
N>{
N> X x;
N> x.Foo();
N>}
N>
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
X — это структура.
Метод Foo() паблик.
Re[2]: [C#, Этюд] Unassigned variable
От:
jitm
Дата: 22.03.10 12:31
Оценка:
+1
Здравствуйте, jitm, Вы писали:
J>Здравствуйте, nikov, Вы писали:
N>>У меня в программе есть такой метод:
N>>N>>static void Main()
N>>{
N>> X x;
N>> x.Foo();
N>>}
N>>
N>>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
J>X — это структура.
J>Метод Foo() паблик.
J>
Ой лажанул
Не досмотрел что Х это класс ...
Re: [C#, Этюд] Unassigned variable
Здравствуйте, nikov, Вы писали:
N>У меня в программе есть такой метод:
N>N>static void Main()
N>{
N> X x;
N> x.Foo();
N>}
N>
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
class X
{
public void Foo() { }
}
class Program
{
private static X x; // \u0445
public static void Main()
{
X х; // \u0078
x.Foo();
}
}
Re[2]: [C#, Этюд] Unassigned variable
Здравствуйте, desco, Вы писали:
D>D>class X
D>{
D> public void Foo() { }
D>}
D>class Program
D>{
D> private static X x; // \u0445
D> public static void Main()
D> {
D> X х; // \u0078
D> x.Foo();
D> }
D>}
D>
Ну, это ты исказил мой исходный код. Это же всё-таки была не картинка.
Re[2]: [C#, Этюд] Unassigned variable
От:
Muxa
Дата: 22.03.10 12:37
Оценка:
ай. опередил меня.
у меня такое же решение.
Re: [C#, Этюд] Unassigned variable
Здравствуйте, nikov, Вы писали:
N>У меня в программе есть такой метод:
N>N>static void Main()
N>{
N> X x;
N> x.Foo();
N>}
N>
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
У меня сумасшедшая идея была, связанная с особенностью extension-методов в VB.NET:
VBAssembly.dll
Imports System.Runtime.CompilerServices
Imports System.Runtime.InteropServices
Public Class X
End Class
Public Module Extensions
<Extension()> _
Public Sub Foo(<Out()> ByRef x As X)
End Sub
End Module
и
using VBAssembly;
class Program
{
static void Main()
{
X x;
x.Foo();
}
}
Но не компилится, сволочь
error CS1620 : Argument 1 must be passed with the 'out' keyword
Re[2]: [C#, Этюд] Unassigned variable
Навеяно предыдущим решением:
class X
{
public void Foo() { }
}
public class x
{
public static void Foo() {}
}
class Program
{
public static void Main()
{
X х;
x.Foo();
}
}
Re[3]: [C#, Этюд] Unassigned variable
Здравствуйте, andrb, Вы писали:
А толку то... этюд то пока без решения.
Re[3]: [C#, Этюд] Unassigned variable
Здравствуйте, andrb, Вы писали:
A>A>class Program
A>{
A> public static void Main()
A> {
A> X х;
A> x.Foo();
A> }
A>}
A>
В постановке задачи оба 'x' в методе Main — одинаковые символы.
Re[3]: [C#, Этюд] Unassigned variable
От:
Аноним
Дата: 22.03.10 13:06
Оценка:
Здравствуйте, andrb, Вы писали:
A>class Program
A>{
A> public static void Main()
A> {
A> X х;
A> x.Foo();
A> }
A>}
A>[/c#]
Тут х русская буква "х" ?
Re[4]: [C#, Этюд] Unassigned variable
Здравствуйте, Аноним, Вы писали:
A>>class Program
A>>{
A>> public static void Main()
A>> {
A>> X х;
A>> x.Foo();
A>> }
A>>}
A>>[/c#]
А>Тут х русская буква "х" ?
Одна из них — да.
Re: [C#, Этюд] Unassigned variable
Здравствуйте, nikov, Вы писали:
N>У меня в программе есть такой метод:
N>N>static void Main()
N>{
N> X x;
N> x.Foo();
N>}
N>
N>и при этом она компилируется без ошибок. X — это класс. Как такое может быть?
class Program
{
static void Main()
{
X x;
x.Foo();
}
}
class X
{
[System.Diagnostics.Conditional("SOME_UNDEFINED_CONSTANT" )]
public void Foo() { }
}
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re[2]: [C#, Этюд] Unassigned variable
Здравствуйте, ksg71, Вы писали:
K>K> [System.Diagnostics.Conditional("SOME_UNDEFINED_CONSTANT" )]
K> public void Foo() { }
K>
Верно! Другой вариант — partial метод без имплементации.
Re[3]: [C#, Этюд] Unassigned variable
От:
ksg71
Дата: 22.03.10 13:39
Оценка:
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, ksg71, Вы писали:
K>>K>> [System.Diagnostics.Conditional("SOME_UNDEFINED_CONSTANT" )]
K>> public void Foo() { }
K>>
N>Верно! Другой вариант — partial метод без имплементации.
partial даже более "честное" решение
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re[4]: [C#, Этюд] Unassigned variable
От:
divergo
Дата: 22.03.10 14:13
Оценка:
K>partial даже более "честное" решение
а по-моему они оба нечестные т.к еще со 2-го фрейморка
а я-то кинулся искать, думал в 4-м сделали как-то хитро ну очень ленивую инициализацию
вот вам мой вариант за это
#if FirstMain
class A
{
static void Main()
{
X x;
x.Foo();
Console.Read();
}
}
#endif
Re[5]: [C#, Этюд] Unassigned variable
Здравствуйте, divergo, Вы писали:
D>вот вам мой вариант за это
D>D>#if FirstMain
D>class A
D>{
D> static void Main()
D> {
D> X x;
D> x.Foo();
D> Console.Read();
D> }
D>}
D>#endif
D>
D>
В условии сказано: "У меня в программе есть такой
метод ". А это не метод, это
skipped-section .
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить