redasya, это все про один и тот же this. Щас попробуем с другой стороны. Все классы в Java - наследники (неявные) класса Object. У класса Object есть поле - this. Обычное поле класса. Соответственно оно есть и у наследников. Когда вы создаете экземпляр класса (делаете new) - джава-машина в поле this кладет ссылку на то, что было создано при помощи new.
Например:
YourClass instance = new YourClass();
YourClass instance2 = new YourClass();
в instance как вы понимаете - экземпляр класса YourClass и в instance2 - тоже экземпляр, но другой. Это два разных экземпляра (объекта). Соответственно их поля могут иметь разные значения. this - поле. Для instance - оно будет равно instance, для Instance2 - instance2.
Соответственно когда вы будете вызывать у какого то ЭКЗЕМПЛЯРА (методы вызываются у экземпляров, не у классов), то можете работать внутри метода только с полям этого ЭКЗЕМПЛЯРА. И вот в поле this будет ссылка на этот экземпляр, у которого вызван метод.
Продолжая код:
instance.someField = 1;
instance2.someField = 2;
public int YourClass::GetField()
{
return someField;
}
Если вы попытаетесь вызвать метод GetField у instance - вернется 1. Если у instance2 - вернется 2. Вот точно так же и с this:
Что у вас за размер проекта? И что за ЯП? Пол часа - это очень долго, возможно стоит подумать о рефакторинге и разделении проектов на либы - чтобы комплилось только что то одно.
Дмитрий Королев, где то встречал, что на виндофонах mp3 не стримится - проблемы с лицензией (да, которая уже истекла, но все же). Странно почему в доках этого нет
Дмитрий Королев, я без понятия какую документацию вы цитируете. Возможно имеется ввиду воспроизведение mp3 из ассетов, а не из www. Анроиды конечно же не включают в себя виндусфон - это разные платформы!
Например:
в instance как вы понимаете - экземпляр класса YourClass и в instance2 - тоже экземпляр, но другой. Это два разных экземпляра (объекта). Соответственно их поля могут иметь разные значения. this - поле. Для instance - оно будет равно instance, для Instance2 - instance2.
Соответственно когда вы будете вызывать у какого то ЭКЗЕМПЛЯРА (методы вызываются у экземпляров, не у классов), то можете работать внутри метода только с полям этого ЭКЗЕМПЛЯРА. И вот в поле this будет ссылка на этот экземпляр, у которого вызван метод.
Продолжая код:
Если вы попытаетесь вызвать метод GetField у instance - вернется 1. Если у instance2 - вернется 2. Вот точно так же и с this:
КОд не на джаве, но принцип тот же